31 lines
1.8 KiB
TypeScript
31 lines
1.8 KiB
TypeScript
import type { IWriter, IWriterGrowable } from '@jsonjoy.com/buffers/lib';
|
|
import type { XdrSchema, XdrEnumSchema, XdrOpaqueSchema, XdrVarlenOpaqueSchema, XdrStringSchema, XdrArraySchema, XdrVarlenArraySchema, XdrStructSchema, XdrUnionSchema, XdrOptionalSchema } from './types';
|
|
export declare class XdrSchemaEncoder {
|
|
readonly writer: IWriter & IWriterGrowable;
|
|
private encoder;
|
|
constructor(writer: IWriter & IWriterGrowable);
|
|
encode(value: unknown, schema: XdrSchema): Uint8Array;
|
|
writeVoid(schema: XdrSchema): void;
|
|
writeInt(value: number, schema: XdrSchema): void;
|
|
writeUnsignedInt(value: number, schema: XdrSchema): void;
|
|
writeBoolean(value: boolean, schema: XdrSchema): void;
|
|
writeHyper(value: number | bigint, schema: XdrSchema): void;
|
|
writeUnsignedHyper(value: number | bigint, schema: XdrSchema): void;
|
|
writeFloat(value: number, schema: XdrSchema): void;
|
|
writeDouble(value: number, schema: XdrSchema): void;
|
|
writeQuadruple(value: number, schema: XdrSchema): void;
|
|
writeEnum(value: string, schema: XdrEnumSchema): void;
|
|
writeOpaque(value: Uint8Array, schema: XdrOpaqueSchema): void;
|
|
writeVarlenOpaque(value: Uint8Array, schema: XdrVarlenOpaqueSchema): void;
|
|
writeString(value: string, schema: XdrStringSchema): void;
|
|
writeArray(value: unknown[], schema: XdrArraySchema): void;
|
|
writeVarlenArray(value: unknown[], schema: XdrVarlenArraySchema): void;
|
|
writeStruct(value: Record<string, unknown>, schema: XdrStructSchema): void;
|
|
writeUnion(value: unknown, schema: XdrUnionSchema, discriminant: number | string | boolean): void;
|
|
writeOptional(value: unknown, schema: XdrOptionalSchema): void;
|
|
writeNumber(value: number, schema: XdrSchema): void;
|
|
private writeValue;
|
|
private validateSchemaType;
|
|
private writeDiscriminant;
|
|
}
|