1+ import type { DuplexBuffer } from '../buffer/DuplexBuffer' ;
2+ import { UnalignedUint16Array } from '../buffer/UnalignedUint16Array' ;
13import { Pointer , type PointerLike } from '../shared/Pointer' ;
24import { t , type IType } from '../types/index' ;
3- import { UnalignedUint16Array } from '../UnalignedUint16Array' ;
45
56export class Schema < Id extends number = number , Entries extends object = object > {
67 readonly #id: Id ;
@@ -83,7 +84,7 @@ export class Schema<Id extends number = number, Entries extends object = object>
8384 * @param defaultMaximumArrayLength The default maximum array length, if any
8485 * @returns The newly created buffer.
8586 */
86- public serializeRaw ( value : Readonly < SerializeValueEntries < Entries > > , defaultMaximumArrayLength = 100 ) : UnalignedUint16Array {
87+ public serializeRaw ( value : Readonly < SerializeValueEntries < Entries > > , defaultMaximumArrayLength = 100 ) : DuplexBuffer {
8788 const buffer = new UnalignedUint16Array ( this . totalBitSize ?? defaultMaximumArrayLength ) ;
8889 this . serializeInto ( buffer , value ) ;
8990 return buffer ;
@@ -100,7 +101,7 @@ export class Schema<Id extends number = number, Entries extends object = object>
100101 * The schema's ID is written to the buffer first, followed by each property
101102 * in the schema.
102103 */
103- public serializeInto ( buffer : UnalignedUint16Array , value : Readonly < SerializeValueEntries < Entries > > ) : void {
104+ public serializeInto ( buffer : DuplexBuffer , value : Readonly < SerializeValueEntries < Entries > > ) : void {
104105 buffer . writeInt16 ( this . #id) ;
105106 for ( const [ name , type ] of this ) {
106107 ( type as IType < any , number | null > ) . serialize ( buffer , ( value as any ) [ name ] ) ;
@@ -119,7 +120,7 @@ export class Schema<Id extends number = number, Entries extends object = object>
119120 * Unlike {@link Schema.serializeInto}, this method does not read the schema's ID
120121 * from the buffer, that is reserved for the {@link SchemaStore}.
121122 */
122- public deserialize ( buffer : UnalignedUint16Array | string , pointer : PointerLike ) : UnwrapSchemaEntries < Entries > {
123+ public deserialize ( buffer : DuplexBuffer | string , pointer : PointerLike ) : UnwrapSchemaEntries < Entries > {
123124 buffer = UnalignedUint16Array . from ( buffer ) ;
124125 pointer = Pointer . from ( pointer ) ;
125126 const result = Object . create ( null ) as UnwrapSchemaEntries < Entries > ;
0 commit comments