47 lines
1.7 KiB
TypeScript
47 lines
1.7 KiB
TypeScript
export interface ISerializeObject<T> {
|
|
serializeKey(key: string): void;
|
|
serializeValue<U>(value: U): void;
|
|
serializeEntry<U>(key: string, value: U): void;
|
|
end(): T;
|
|
}
|
|
export declare abstract class SerializeObject<T> implements ISerializeObject<T> {
|
|
abstract serializeKey(key: string): void;
|
|
abstract serializeValue<U>(value: U): void;
|
|
abstract end(): T;
|
|
serializeEntry<U>(key: string, value: U): void;
|
|
}
|
|
export interface ISerializeIterable<T> {
|
|
serializeElement<U>(value: U): void;
|
|
end(): T;
|
|
}
|
|
export declare abstract class SerializeIterable<T> implements ISerializeIterable<T> {
|
|
abstract serializeElement<U>(value: U): void;
|
|
abstract end(): T;
|
|
}
|
|
export interface ISerializer<T> {
|
|
serializeAny?(value: any): T;
|
|
serializeBoolean(value: boolean): T;
|
|
serializeNumber(value: number): T;
|
|
serializeBigInt(value: bigint): T;
|
|
serializeString(value: string): T;
|
|
serializeSymbol(value: symbol): T;
|
|
serializeNull(): T;
|
|
serializeIterable(len?: number): ISerializeIterable<T>;
|
|
serializeObject(len?: number): ISerializeObject<T>;
|
|
serializeClass(name: string, len?: number): ISerializeObject<T>;
|
|
}
|
|
export declare class Serializer<T> implements ISerializer<T> {
|
|
serializeAny(_value: any): T;
|
|
serializeBoolean(_value: boolean): T;
|
|
serializeNumber(_value: number): T;
|
|
serializeBigInt(_value: bigint): T;
|
|
serializeString(_value: string): T;
|
|
serializeSymbol(_value: symbol): T;
|
|
serializeNull(): T;
|
|
serializeIterable(_len: number): ISerializeIterable<T>;
|
|
serializeObject(_len: number): ISerializeObject<T>;
|
|
serializeClass(_name: string, _len: number): ISerializeObject<T>;
|
|
}
|
|
export interface Serialize<T, U> {
|
|
(serializer: ISerializer<T>, value: U): T;
|
|
}
|