ox
Version:
Ethereum Standard Library
71 lines • 2.41 kB
TypeScript
import type { Bytes } from '../Bytes.js';
import * as Errors from '../Errors.js';
/** @internal */
export type Cursor = {
bytes: Bytes;
dataView: DataView;
position: number;
/** Lazy: only allocated when slow-path tracking kicks in. */
positionReadCount: Map<number, number> | undefined;
recursiveReadCount: number;
recursiveReadLimit: number;
remaining: number;
assertReadLimit(position?: number): void;
assertPosition(position: number): void;
decrementPosition(offset: number): void;
getReadCount(position?: number): number;
incrementPosition(offset: number): void;
inspectByte(position?: number): Bytes[number];
inspectBytes(length: number, position?: number): Bytes;
inspectUint8(position?: number): number;
inspectUint16(position?: number): number;
inspectUint24(position?: number): number;
inspectUint32(position?: number): number;
pushByte(byte: Bytes[number]): void;
pushBytes(bytes: Bytes): void;
pushUint8(value: number): void;
pushUint16(value: number): void;
pushUint24(value: number): void;
pushUint32(value: number): void;
readByte(): Bytes[number];
readBytes(length: number, size?: number): Bytes;
readUint8(): number;
readUint16(): number;
readUint24(): number;
readUint32(): number;
setPosition(position: number): () => void;
_touch(): void;
};
/** @internal */
export declare function create(bytes: Bytes, { recursiveReadLimit }?: create.Config): Cursor;
/** @internal */
export declare namespace create {
type Config = {
recursiveReadLimit?: number | undefined;
};
type ErrorType = Errors.GlobalErrorType;
}
/** @internal */
export declare class NegativeOffsetError extends Errors.BaseError {
readonly name = "Cursor.NegativeOffsetError";
constructor({ offset }: {
offset: number;
});
}
/** @internal */
export declare class PositionOutOfBoundsError extends Errors.BaseError {
readonly name = "Cursor.PositionOutOfBoundsError";
constructor({ length, position }: {
length: number;
position: number;
});
}
/** @internal */
export declare class RecursiveReadLimitExceededError extends Errors.BaseError {
readonly name = "Cursor.RecursiveReadLimitExceededError";
constructor({ count, limit }: {
count: number;
limit: number;
});
}
//# sourceMappingURL=cursor.d.ts.map