snes-disassembler
Version:
A Super Nintendo (SNES) ROM disassembler for 65816 assembly
37 lines • 1.51 kB
TypeScript
/**
* Result Types for Better Error Handling
*
* Implements Result pattern for better error management
* and eliminates need for try-catch everywhere.
*/
export type Result<T, E = Error> = Success<T> | Failure<E>;
export interface Success<T> {
success: true;
data: T;
}
export interface Failure<E> {
success: false;
error: E;
}
export declare const Ok: <T>(data: T) => Success<T>;
export declare const Err: <E>(error: E) => Failure<E>;
export declare const isSuccess: <T, E>(result: Result<T, E>) => result is Success<T>;
export declare const isFailure: <T, E>(result: Result<T, E>) => result is Failure<E>;
export declare const map: <T, U, E>(result: Result<T, E>, fn: (data: T) => U) => Result<U, E>;
export declare const flatMap: <T, U, E>(result: Result<T, E>, fn: (data: T) => Result<U, E>) => Result<U, E>;
export declare enum DisassemblerErrorType {
ROM_NOT_FOUND = "ROM_NOT_FOUND",
INVALID_ROM_FORMAT = "INVALID_ROM_FORMAT",
INVALID_ADDRESS_RANGE = "INVALID_ADDRESS_RANGE",
DECODER_ERROR = "DECODER_ERROR",
SYMBOL_LOAD_ERROR = "SYMBOL_LOAD_ERROR",
OUTPUT_ERROR = "OUTPUT_ERROR",
ANALYSIS_ERROR = "ANALYSIS_ERROR",
BRR_DECODE_ERROR = "BRR_DECODE_ERROR"
}
export declare class DisassemblerError extends Error {
type: DisassemblerErrorType;
context?: Record<string, unknown> | undefined;
constructor(type: DisassemblerErrorType, message: string, context?: Record<string, unknown> | undefined);
}
//# sourceMappingURL=result-types.d.ts.map