XdrSchemaEncoder.d.ts 1.7 KB

1234567891011121314151617181920212223242526272829
  1. import type { IWriter, IWriterGrowable } from '@jsonjoy.com/buffers/lib';
  2. import type { XdrSchema, XdrEnumSchema, XdrOpaqueSchema, XdrVarlenOpaqueSchema, XdrStringSchema, XdrArraySchema, XdrVarlenArraySchema, XdrStructSchema, XdrUnionSchema } from './types';
  3. export declare class XdrSchemaEncoder {
  4. readonly writer: IWriter & IWriterGrowable;
  5. private encoder;
  6. constructor(writer: IWriter & IWriterGrowable);
  7. encode(value: unknown, schema: XdrSchema): Uint8Array;
  8. writeVoid(schema: XdrSchema): void;
  9. writeInt(value: number, schema: XdrSchema): void;
  10. writeUnsignedInt(value: number, schema: XdrSchema): void;
  11. writeBoolean(value: boolean, schema: XdrSchema): void;
  12. writeHyper(value: number | bigint, schema: XdrSchema): void;
  13. writeUnsignedHyper(value: number | bigint, schema: XdrSchema): void;
  14. writeFloat(value: number, schema: XdrSchema): void;
  15. writeDouble(value: number, schema: XdrSchema): void;
  16. writeQuadruple(value: number, schema: XdrSchema): void;
  17. writeEnum(value: string, schema: XdrEnumSchema): void;
  18. writeOpaque(value: Uint8Array, schema: XdrOpaqueSchema): void;
  19. writeVarlenOpaque(value: Uint8Array, schema: XdrVarlenOpaqueSchema): void;
  20. writeString(value: string, schema: XdrStringSchema): void;
  21. writeArray(value: unknown[], schema: XdrArraySchema): void;
  22. writeVarlenArray(value: unknown[], schema: XdrVarlenArraySchema): void;
  23. writeStruct(value: Record<string, unknown>, schema: XdrStructSchema): void;
  24. writeUnion(value: unknown, schema: XdrUnionSchema, discriminant: number | string | boolean): void;
  25. writeNumber(value: number, schema: XdrSchema): void;
  26. private writeValue;
  27. private validateSchemaType;
  28. private writeDiscriminant;
  29. }