@solana/codecs-data-structures 2.0.0-experimental.fbd3974 → 2.0.0-experimental.fcff844

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/index.browser.cjs +385 -476
  2. package/dist/index.browser.cjs.map +1 -1
  3. package/dist/index.browser.js +387 -472
  4. package/dist/index.browser.js.map +1 -1
  5. package/dist/index.development.js +501 -566
  6. package/dist/index.development.js.map +1 -1
  7. package/dist/index.native.js +387 -474
  8. package/dist/index.native.js.map +1 -1
  9. package/dist/index.node.cjs +385 -476
  10. package/dist/index.node.cjs.map +1 -1
  11. package/dist/index.node.js +387 -472
  12. package/dist/index.node.js.map +1 -1
  13. package/dist/index.production.min.js +37 -41
  14. package/dist/types/array.d.ts +54 -10
  15. package/dist/types/array.d.ts.map +1 -0
  16. package/dist/types/assertions.d.ts.map +1 -0
  17. package/dist/types/bit-array.d.ts +9 -9
  18. package/dist/types/bit-array.d.ts.map +1 -0
  19. package/dist/types/boolean.d.ts +22 -10
  20. package/dist/types/boolean.d.ts.map +1 -0
  21. package/dist/types/bytes.d.ts +18 -9
  22. package/dist/types/bytes.d.ts.map +1 -0
  23. package/dist/types/data-enum.d.ts +20 -20
  24. package/dist/types/data-enum.d.ts.map +1 -0
  25. package/dist/types/index.d.ts +0 -1
  26. package/dist/types/index.d.ts.map +1 -0
  27. package/dist/types/map.d.ts +43 -10
  28. package/dist/types/map.d.ts.map +1 -0
  29. package/dist/types/nullable.d.ts +28 -10
  30. package/dist/types/nullable.d.ts.map +1 -0
  31. package/dist/types/scalar-enum.d.ts +22 -10
  32. package/dist/types/scalar-enum.d.ts.map +1 -0
  33. package/dist/types/set.d.ts +43 -10
  34. package/dist/types/set.d.ts.map +1 -0
  35. package/dist/types/struct.d.ts +28 -18
  36. package/dist/types/struct.d.ts.map +1 -0
  37. package/dist/types/tuple.d.ts +22 -15
  38. package/dist/types/tuple.d.ts.map +1 -0
  39. package/dist/types/unit.d.ts +4 -12
  40. package/dist/types/unit.d.ts.map +1 -0
  41. package/dist/types/utils.d.ts +10 -2
  42. package/dist/types/utils.d.ts.map +1 -0
  43. package/package.json +6 -6
  44. package/dist/types/array-like-codec-size.d.ts +0 -20
@@ -1,6 +1,6 @@
1
- import { BaseCodecOptions, Codec, Decoder, Encoder } from '@solana/codecs-core';
2
- /** Defines the options for bitArray codecs. */
3
- export type BitArrayCodecOptions = BaseCodecOptions & {
1
+ import { FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';
2
+ /** Defines the config for bitArray codecs. */
3
+ export type BitArrayCodecConfig = {
4
4
  /**
5
5
  * Whether to read the bits in reverse order.
6
6
  * @defaultValue `false`
@@ -11,21 +11,21 @@ export type BitArrayCodecOptions = BaseCodecOptions & {
11
11
  * Encodes an array of booleans into bits.
12
12
  *
13
13
  * @param size - The amount of bytes to use for the bit array.
14
- * @param options - A set of options for the encoder.
14
+ * @param config - A set of config for the encoder.
15
15
  */
16
- export declare const getBitArrayEncoder: (size: number, options?: BitArrayCodecOptions | boolean) => Encoder<boolean[]>;
16
+ export declare function getBitArrayEncoder<TSize extends number>(size: TSize, config?: BitArrayCodecConfig | boolean): FixedSizeEncoder<boolean[], TSize>;
17
17
  /**
18
18
  * Decodes bits into an array of booleans.
19
19
  *
20
20
  * @param size - The amount of bytes to use for the bit array.
21
- * @param options - A set of options for the decoder.
21
+ * @param config - A set of config for the decoder.
22
22
  */
23
- export declare const getBitArrayDecoder: (size: number, options?: BitArrayCodecOptions | boolean) => Decoder<boolean[]>;
23
+ export declare function getBitArrayDecoder<TSize extends number>(size: TSize, config?: BitArrayCodecConfig | boolean): FixedSizeDecoder<boolean[], TSize>;
24
24
  /**
25
25
  * An array of boolean codec that converts booleans to bits and vice versa.
26
26
  *
27
27
  * @param size - The amount of bytes to use for the bit array.
28
- * @param options - A set of options for the codec.
28
+ * @param config - A set of config for the codec.
29
29
  */
30
- export declare const getBitArrayCodec: (size: number, options?: BitArrayCodecOptions | boolean) => Codec<boolean[]>;
30
+ export declare function getBitArrayCodec<TSize extends number>(size: TSize, config?: BitArrayCodecConfig | boolean): FixedSizeCodec<boolean[], boolean[], TSize>;
31
31
  //# sourceMappingURL=bit-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bit-array.d.ts","sourceRoot":"","sources":["../../src/bit-array.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,8CAA8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,MAAM,EACnD,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,mBAAmB,GAAG,OAAY,GAC3C,gBAAgB,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAyBpC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,MAAM,EACnD,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,mBAAmB,GAAG,OAAY,GAC3C,gBAAgB,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CA0BpC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,MAAM,EACjD,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,mBAAmB,GAAG,OAAY,GAC3C,cAAc,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAE7C"}
@@ -1,7 +1,7 @@
1
- import { BaseCodecOptions, Codec, Decoder, Encoder } from '@solana/codecs-core';
2
- import { NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
- /** Defines the options for boolean codecs. */
4
- export type BooleanCodecOptions<TSize extends NumberCodec | NumberEncoder | NumberDecoder> = BaseCodecOptions & {
1
+ import { Codec, Decoder, Encoder, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';
2
+ import { FixedSizeNumberCodec, FixedSizeNumberDecoder, FixedSizeNumberEncoder, NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
+ /** Defines the config for boolean codecs. */
4
+ export type BooleanCodecConfig<TSize extends NumberCodec | NumberEncoder | NumberDecoder> = {
5
5
  /**
6
6
  * The number codec to delegate to.
7
7
  * @defaultValue u8 size.
@@ -11,19 +11,31 @@ export type BooleanCodecOptions<TSize extends NumberCodec | NumberEncoder | Numb
11
11
  /**
12
12
  * Encodes booleans.
13
13
  *
14
- * @param options - A set of options for the encoder.
14
+ * @param config - A set of config for the encoder.
15
15
  */
16
- export declare function getBooleanEncoder(options?: BooleanCodecOptions<NumberEncoder>): Encoder<boolean>;
16
+ export declare function getBooleanEncoder(): FixedSizeEncoder<boolean, 1>;
17
+ export declare function getBooleanEncoder<TSize extends number>(config: BooleanCodecConfig<NumberEncoder> & {
18
+ size: FixedSizeNumberEncoder<TSize>;
19
+ }): FixedSizeEncoder<boolean, TSize>;
20
+ export declare function getBooleanEncoder(config: BooleanCodecConfig<NumberEncoder>): Encoder<boolean>;
17
21
  /**
18
22
  * Decodes booleans.
19
23
  *
20
- * @param options - A set of options for the decoder.
24
+ * @param config - A set of config for the decoder.
21
25
  */
22
- export declare function getBooleanDecoder(options?: BooleanCodecOptions<NumberDecoder>): Decoder<boolean>;
26
+ export declare function getBooleanDecoder(): FixedSizeDecoder<boolean, 1>;
27
+ export declare function getBooleanDecoder<TSize extends number>(config: BooleanCodecConfig<NumberDecoder> & {
28
+ size: FixedSizeNumberDecoder<TSize>;
29
+ }): FixedSizeDecoder<boolean, TSize>;
30
+ export declare function getBooleanDecoder(config: BooleanCodecConfig<NumberDecoder>): Decoder<boolean>;
23
31
  /**
24
32
  * Creates a boolean codec.
25
33
  *
26
- * @param options - A set of options for the codec.
34
+ * @param config - A set of config for the codec.
27
35
  */
28
- export declare function getBooleanCodec(options?: BooleanCodecOptions<NumberCodec>): Codec<boolean>;
36
+ export declare function getBooleanCodec(): FixedSizeCodec<boolean, boolean, 1>;
37
+ export declare function getBooleanCodec<TSize extends number>(config: BooleanCodecConfig<NumberCodec> & {
38
+ size: FixedSizeNumberCodec<TSize>;
39
+ }): FixedSizeCodec<boolean, boolean, TSize>;
40
+ export declare function getBooleanCodec(config: BooleanCodecConfig<NumberCodec>): Codec<boolean>;
29
41
  //# sourceMappingURL=boolean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../src/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,EAEL,OAAO,EACP,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAGnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAGtB,WAAW,EACX,aAAa,EACb,aAAa,EAChB,MAAM,wBAAwB,CAAC;AAEhC,6CAA6C;AAC7C,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,WAAW,GAAG,aAAa,GAAG,aAAa,IAAI;IACxF;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAClE,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,MAAM,EAClD,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAA;CAAE,GACpF,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAO/F;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAClE,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,MAAM,EAClD,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAA;CAAE,GACpF,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAO/F;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACvE,wBAAgB,eAAe,CAAC,KAAK,SAAS,MAAM,EAChD,MAAM,EAAE,kBAAkB,CAAC,WAAW,CAAC,GAAG;IAAE,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAA;CAAE,GAChF,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC3C,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
- import { BaseCodecOptions, Codec, Decoder, Encoder } from '@solana/codecs-core';
1
+ import { FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, VariableSizeCodec, VariableSizeDecoder, VariableSizeEncoder } from '@solana/codecs-core';
2
2
  import { NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
- /** Defines the options for bytes codecs. */
4
- export type BytesCodecOptions<TSize extends NumberCodec | NumberEncoder | NumberDecoder> = BaseCodecOptions & {
3
+ /** Defines the config for bytes codecs. */
4
+ export type BytesCodecConfig<TSize extends NumberCodec | NumberEncoder | NumberDecoder> = {
5
5
  /**
6
6
  * The size of the byte array. It can be one of the following:
7
7
  * - a {@link NumberSerializer} that prefixes the byte array with its size.
@@ -14,19 +14,28 @@ export type BytesCodecOptions<TSize extends NumberCodec | NumberEncoder | Number
14
14
  /**
15
15
  * Encodes sized bytes.
16
16
  *
17
- * @param options - A set of options for the encoder.
17
+ * @param config - A set of config for the encoder.
18
18
  */
19
- export declare function getBytesEncoder(options?: BytesCodecOptions<NumberEncoder>): Encoder<Uint8Array>;
19
+ export declare function getBytesEncoder<TSize extends number>(config: BytesCodecConfig<NumberEncoder> & {
20
+ size: TSize;
21
+ }): FixedSizeEncoder<Uint8Array, TSize>;
22
+ export declare function getBytesEncoder(config?: BytesCodecConfig<NumberEncoder>): VariableSizeEncoder<Uint8Array>;
20
23
  /**
21
24
  * Decodes sized bytes.
22
25
  *
23
- * @param options - A set of options for the decoder.
26
+ * @param config - A set of config for the decoder.
24
27
  */
25
- export declare function getBytesDecoder(options?: BytesCodecOptions<NumberDecoder>): Decoder<Uint8Array>;
28
+ export declare function getBytesDecoder<TSize extends number>(config: BytesCodecConfig<NumberDecoder> & {
29
+ size: TSize;
30
+ }): FixedSizeDecoder<Uint8Array, TSize>;
31
+ export declare function getBytesDecoder(config?: BytesCodecConfig<NumberDecoder>): VariableSizeDecoder<Uint8Array>;
26
32
  /**
27
33
  * Creates a sized bytes codec.
28
34
  *
29
- * @param options - A set of options for the codec.
35
+ * @param config - A set of config for the codec.
30
36
  */
31
- export declare function getBytesCodec(options?: BytesCodecOptions<NumberCodec>): Codec<Uint8Array>;
37
+ export declare function getBytesCodec<TSize extends number>(config: BytesCodecConfig<NumberCodec> & {
38
+ size: TSize;
39
+ }): FixedSizeCodec<Uint8Array, Uint8Array, TSize>;
40
+ export declare function getBytesCodec(config?: BytesCodecConfig<NumberCodec>): VariableSizeCodec<Uint8Array>;
32
41
  //# sourceMappingURL=bytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAUH,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAGhB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnF,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,WAAW,GAAG,aAAa,GAAG,aAAa,IAAI;IACtF;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,SAAS,MAAM,EAChD,MAAM,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC1D,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACvC,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;AA6B3G;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,SAAS,MAAM,EAChD,MAAM,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC1D,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACvC,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAkC3G;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,SAAS,MAAM,EAC9C,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACxD,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACjD,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BaseCodecOptions, Codec, Decoder, Encoder } from '@solana/codecs-core';
1
+ import { Codec, Decoder, Encoder } from '@solana/codecs-core';
2
2
  import { NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
3
  /**
4
4
  * Defines a data enum using discriminated union types.
@@ -43,23 +43,23 @@ export type GetDataEnumKind<T extends DataEnum, K extends T['__kind']> = Extract
43
43
  export type GetDataEnumKindContent<T extends DataEnum, K extends T['__kind']> = Omit<Extract<T, {
44
44
  __kind: K;
45
45
  }>, '__kind'>;
46
- /** Get the name and codec of each variant in a data enum. */
47
- export type DataEnumToCodecTuple<T extends DataEnum, U extends T = T> = Array<T extends never ? never : [
48
- T['__kind'],
49
- keyof Omit<T, '__kind'> extends never ? Codec<Omit<T, '__kind'>, Omit<U, '__kind'>> | Codec<void> : Codec<Omit<T, '__kind'>, Omit<U, '__kind'>>
50
- ]>;
51
46
  /** Get the name and encoder of each variant in a data enum. */
52
- export type DataEnumToEncoderTuple<T extends DataEnum> = Array<T extends never ? never : [
53
- T['__kind'],
54
- keyof Omit<T, '__kind'> extends never ? Encoder<Omit<T, '__kind'>> | Encoder<void> : Encoder<Omit<T, '__kind'>>
47
+ export type DataEnumToEncoderTuple<TFrom extends DataEnum> = Array<TFrom extends never ? never : [
48
+ TFrom['__kind'],
49
+ keyof Omit<TFrom, '__kind'> extends never ? Encoder<Omit<TFrom, '__kind'>> | Encoder<void> : Encoder<Omit<TFrom, '__kind'>>
55
50
  ]>;
56
51
  /** Get the name and decoder of each variant in a data enum. */
57
- export type DataEnumToDecoderTuple<T extends DataEnum> = Array<T extends never ? never : [
58
- T['__kind'],
59
- keyof Omit<T, '__kind'> extends never ? Decoder<Omit<T, '__kind'>> | Decoder<void> : Decoder<Omit<T, '__kind'>>
52
+ export type DataEnumToDecoderTuple<TTo extends DataEnum> = Array<TTo extends never ? never : [
53
+ TTo['__kind'],
54
+ keyof Omit<TTo, '__kind'> extends never ? Decoder<Omit<TTo, '__kind'>> | Decoder<void> : Decoder<Omit<TTo, '__kind'>>
55
+ ]>;
56
+ /** Get the name and codec of each variant in a data enum. */
57
+ export type DataEnumToCodecTuple<TFrom extends DataEnum, TTo extends TFrom = TFrom> = Array<TFrom extends never ? never : [
58
+ TFrom['__kind'],
59
+ keyof Omit<TFrom, '__kind'> extends never ? Codec<Omit<TFrom, '__kind'>, Omit<TTo, '__kind'>> | Codec<void> : Codec<Omit<TFrom, '__kind'>, Omit<TTo, '__kind'>>
60
60
  ]>;
61
- /** Defines the options for data enum codecs. */
62
- export type DataEnumCodecOptions<TDiscriminator = NumberCodec | NumberEncoder | NumberDecoder> = BaseCodecOptions & {
61
+ /** Defines the config for data enum codecs. */
62
+ export type DataEnumCodecConfig<TDiscriminator = NumberCodec | NumberEncoder | NumberDecoder> = {
63
63
  /**
64
64
  * The codec to use for the enum discriminator prefixing the variant.
65
65
  * @defaultValue u8 prefix.
@@ -70,21 +70,21 @@ export type DataEnumCodecOptions<TDiscriminator = NumberCodec | NumberEncoder |
70
70
  * Creates a data enum encoder.
71
71
  *
72
72
  * @param variants - The variant encoders of the data enum.
73
- * @param options - A set of options for the encoder.
73
+ * @param config - A set of config for the encoder.
74
74
  */
75
- export declare function getDataEnumEncoder<T extends DataEnum>(variants: DataEnumToEncoderTuple<T>, options?: DataEnumCodecOptions<NumberEncoder>): Encoder<T>;
75
+ export declare function getDataEnumEncoder<TFrom extends DataEnum>(variants: DataEnumToEncoderTuple<TFrom>, config?: DataEnumCodecConfig<NumberEncoder>): Encoder<TFrom>;
76
76
  /**
77
77
  * Creates a data enum decoder.
78
78
  *
79
79
  * @param variants - The variant decoders of the data enum.
80
- * @param options - A set of options for the decoder.
80
+ * @param config - A set of config for the decoder.
81
81
  */
82
- export declare function getDataEnumDecoder<T extends DataEnum>(variants: DataEnumToDecoderTuple<T>, options?: DataEnumCodecOptions<NumberDecoder>): Decoder<T>;
82
+ export declare function getDataEnumDecoder<T extends DataEnum>(variants: DataEnumToDecoderTuple<T>, config?: DataEnumCodecConfig<NumberDecoder>): Decoder<T>;
83
83
  /**
84
84
  * Creates a data enum codec.
85
85
  *
86
86
  * @param variants - The variant codecs of the data enum.
87
- * @param options - A set of options for the codec.
87
+ * @param config - A set of config for the codec.
88
88
  */
89
- export declare function getDataEnumCodec<T extends DataEnum, U extends T = T>(variants: DataEnumToCodecTuple<T, U>, options?: DataEnumCodecOptions<NumberCodec>): Codec<T, U>;
89
+ export declare function getDataEnumCodec<T extends DataEnum, U extends T = T>(variants: DataEnumToCodecTuple<T, U>, config?: DataEnumCodecConfig<NumberCodec>): Codec<T, U>;
90
90
  //# sourceMappingURL=data-enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-enum.d.ts","sourceRoot":"","sources":["../../src/data-enum.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  export * from './array';
2
- export * from './array-like-codec-size';
3
2
  export * from './assertions';
4
3
  export * from './bit-array';
5
4
  export * from './boolean';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -1,8 +1,8 @@
1
- import { BaseCodecOptions, Codec, Decoder, Encoder } from '@solana/codecs-core';
1
+ import { Codec, Decoder, Encoder, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, VariableSizeCodec, VariableSizeDecoder, VariableSizeEncoder } from '@solana/codecs-core';
2
2
  import { NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
- import { ArrayLikeCodecSize } from './array-like-codec-size';
4
- /** Defines the options for Map codecs. */
5
- export type MapCodecOptions<TPrefix extends NumberCodec | NumberEncoder | NumberDecoder> = BaseCodecOptions & {
3
+ import { ArrayLikeCodecSize } from './array';
4
+ /** Defines the config for Map codecs. */
5
+ export type MapCodecConfig<TPrefix extends NumberCodec | NumberEncoder | NumberDecoder> = {
6
6
  /**
7
7
  * The size of the array.
8
8
  * @defaultValue u32 prefix.
@@ -14,23 +14,56 @@ export type MapCodecOptions<TPrefix extends NumberCodec | NumberEncoder | Number
14
14
  *
15
15
  * @param key - The encoder to use for the map's keys.
16
16
  * @param value - The encoder to use for the map's values.
17
- * @param options - A set of options for the encoder.
17
+ * @param config - A set of config for the encoder.
18
18
  */
19
- export declare function getMapEncoder<K, V>(key: Encoder<K>, value: Encoder<V>, options?: MapCodecOptions<NumberEncoder>): Encoder<Map<K, V>>;
19
+ export declare function getMapEncoder<TFromKey, TFromValue>(key: Encoder<TFromKey>, value: Encoder<TFromValue>, config: MapCodecConfig<NumberEncoder> & {
20
+ size: 0;
21
+ }): FixedSizeEncoder<Map<TFromKey, TFromValue>, 0>;
22
+ export declare function getMapEncoder<TFromKey, TFromValue>(key: FixedSizeEncoder<TFromKey>, value: FixedSizeEncoder<TFromValue>, config: MapCodecConfig<NumberEncoder> & {
23
+ size: number;
24
+ }): FixedSizeEncoder<Map<TFromKey, TFromValue>>;
25
+ export declare function getMapEncoder<TFromKey, TFromValue>(key: FixedSizeEncoder<TFromKey>, value: FixedSizeEncoder<TFromValue>, config: MapCodecConfig<NumberEncoder> & {
26
+ size: 'remainder';
27
+ }): VariableSizeEncoder<Map<TFromKey, TFromValue>>;
28
+ export declare function getMapEncoder<TFromKey, TFromValue>(key: Encoder<TFromKey>, value: Encoder<TFromValue>, config?: MapCodecConfig<NumberEncoder> & {
29
+ size?: number | NumberEncoder;
30
+ }): VariableSizeEncoder<Map<TFromKey, TFromValue>>;
20
31
  /**
21
32
  * Creates a decoder for a map.
22
33
  *
23
34
  * @param key - The decoder to use for the map's keys.
24
35
  * @param value - The decoder to use for the map's values.
25
- * @param options - A set of options for the decoder.
36
+ * @param config - A set of config for the decoder.
26
37
  */
27
- export declare function getMapDecoder<K, V>(key: Decoder<K>, value: Decoder<V>, options?: MapCodecOptions<NumberDecoder>): Decoder<Map<K, V>>;
38
+ export declare function getMapDecoder<TToKey, TToValue>(key: Decoder<TToKey>, value: Decoder<TToValue>, config: MapCodecConfig<NumberDecoder> & {
39
+ size: 0;
40
+ }): FixedSizeDecoder<Map<TToKey, TToValue>, 0>;
41
+ export declare function getMapDecoder<TToKey, TToValue>(key: FixedSizeDecoder<TToKey>, value: FixedSizeDecoder<TToValue>, config: MapCodecConfig<NumberDecoder> & {
42
+ size: number;
43
+ }): FixedSizeDecoder<Map<TToKey, TToValue>>;
44
+ export declare function getMapDecoder<TToKey, TToValue>(key: FixedSizeDecoder<TToKey>, value: FixedSizeDecoder<TToValue>, config: MapCodecConfig<NumberDecoder> & {
45
+ size: 'remainder';
46
+ }): VariableSizeDecoder<Map<TToKey, TToValue>>;
47
+ export declare function getMapDecoder<TToKey, TToValue>(key: Decoder<TToKey>, value: Decoder<TToValue>, config?: MapCodecConfig<NumberDecoder> & {
48
+ size?: number | NumberDecoder;
49
+ }): VariableSizeDecoder<Map<TToKey, TToValue>>;
28
50
  /**
29
51
  * Creates a codec for a map.
30
52
  *
31
53
  * @param key - The codec to use for the map's keys.
32
54
  * @param value - The codec to use for the map's values.
33
- * @param options - A set of options for the codec.
55
+ * @param config - A set of config for the codec.
34
56
  */
35
- export declare function getMapCodec<TK, TV, UK extends TK = TK, UV extends TV = TV>(key: Codec<TK, UK>, value: Codec<TV, UV>, options?: MapCodecOptions<NumberCodec>): Codec<Map<TK, TV>, Map<UK, UV>>;
57
+ export declare function getMapCodec<TFromKey, TFromValue, TToKey extends TFromKey = TFromKey, TToValue extends TFromValue = TFromValue>(key: Codec<TFromKey, TToKey>, value: Codec<TFromValue, TToValue>, config: MapCodecConfig<NumberCodec> & {
58
+ size: 0;
59
+ }): FixedSizeCodec<Map<TFromKey, TFromValue>, Map<TToKey, TToValue>, 0>;
60
+ export declare function getMapCodec<TFromKey, TFromValue, TToKey extends TFromKey = TFromKey, TToValue extends TFromValue = TFromValue>(key: FixedSizeCodec<TFromKey, TToKey>, value: FixedSizeCodec<TFromValue, TToValue>, config: MapCodecConfig<NumberCodec> & {
61
+ size: number;
62
+ }): FixedSizeCodec<Map<TFromKey, TFromValue>, Map<TToKey, TToValue>>;
63
+ export declare function getMapCodec<TFromKey, TFromValue, TToKey extends TFromKey = TFromKey, TToValue extends TFromValue = TFromValue>(key: FixedSizeCodec<TFromKey, TToKey>, value: FixedSizeCodec<TFromValue, TToValue>, config: MapCodecConfig<NumberCodec> & {
64
+ size: 'remainder';
65
+ }): VariableSizeCodec<Map<TFromKey, TFromValue>, Map<TToKey, TToValue>>;
66
+ export declare function getMapCodec<TFromKey, TFromValue, TToKey extends TFromKey = TFromKey, TToValue extends TFromValue = TFromValue>(key: Codec<TFromKey, TToKey>, value: Codec<TFromValue, TToValue>, config?: MapCodecConfig<NumberCodec> & {
67
+ size?: number | NumberCodec;
68
+ }): VariableSizeCodec<Map<TFromKey, TFromValue>, Map<TToKey, TToValue>>;
36
69
  //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/map.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { BaseCodecOptions, Codec, Decoder, Encoder } from '@solana/codecs-core';
2
- import { NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
- /** Defines the options for nullable codecs. */
4
- export type NullableCodecOptions<TPrefix extends NumberCodec | NumberEncoder | NumberDecoder> = BaseCodecOptions & {
1
+ import { Codec, Decoder, Encoder, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, VariableSizeCodec, VariableSizeDecoder, VariableSizeEncoder } from '@solana/codecs-core';
2
+ import { FixedSizeNumberCodec, FixedSizeNumberDecoder, FixedSizeNumberEncoder, NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
+ /** Defines the config for nullable codecs. */
4
+ export type NullableCodecConfig<TPrefix extends NumberCodec | NumberEncoder | NumberDecoder> = {
5
5
  /**
6
6
  * The codec to use for the boolean prefix.
7
7
  * @defaultValue u8 prefix.
@@ -21,21 +21,39 @@ export type NullableCodecOptions<TPrefix extends NumberCodec | NumberEncoder | N
21
21
  * Creates a encoder for an optional value using `null` as the `None` value.
22
22
  *
23
23
  * @param item - The encoder to use for the value that may be present.
24
- * @param options - A set of options for the encoder.
24
+ * @param config - A set of config for the encoder.
25
25
  */
26
- export declare function getNullableEncoder<T>(item: Encoder<T>, options?: NullableCodecOptions<NumberEncoder>): Encoder<T | null>;
26
+ export declare function getNullableEncoder<TFrom>(item: FixedSizeEncoder<TFrom>, config: NullableCodecConfig<FixedSizeNumberEncoder> & {
27
+ fixed: true;
28
+ }): FixedSizeEncoder<TFrom | null>;
29
+ export declare function getNullableEncoder<TFrom>(item: FixedSizeEncoder<TFrom, 0>, config?: NullableCodecConfig<FixedSizeNumberEncoder>): FixedSizeEncoder<TFrom | null>;
30
+ export declare function getNullableEncoder<TFrom>(item: Encoder<TFrom>, config?: NullableCodecConfig<NumberEncoder> & {
31
+ fixed?: false;
32
+ }): VariableSizeEncoder<TFrom | null>;
27
33
  /**
28
34
  * Creates a decoder for an optional value using `null` as the `None` value.
29
35
  *
30
36
  * @param item - The decoder to use for the value that may be present.
31
- * @param options - A set of options for the decoder.
37
+ * @param config - A set of config for the decoder.
32
38
  */
33
- export declare function getNullableDecoder<T>(item: Decoder<T>, options?: NullableCodecOptions<NumberDecoder>): Decoder<T | null>;
39
+ export declare function getNullableDecoder<TTo>(item: FixedSizeDecoder<TTo>, config: NullableCodecConfig<FixedSizeNumberDecoder> & {
40
+ fixed: true;
41
+ }): FixedSizeDecoder<TTo | null>;
42
+ export declare function getNullableDecoder<TTo>(item: FixedSizeDecoder<TTo, 0>, config?: NullableCodecConfig<FixedSizeNumberDecoder>): FixedSizeDecoder<TTo | null>;
43
+ export declare function getNullableDecoder<TTo>(item: Decoder<TTo>, config?: NullableCodecConfig<NumberDecoder> & {
44
+ fixed?: false;
45
+ }): VariableSizeDecoder<TTo | null>;
34
46
  /**
35
47
  * Creates a codec for an optional value using `null` as the `None` value.
36
48
  *
37
49
  * @param item - The codec to use for the value that may be present.
38
- * @param options - A set of options for the codec.
50
+ * @param config - A set of config for the codec.
39
51
  */
40
- export declare function getNullableCodec<T, U extends T = T>(item: Codec<T, U>, options?: NullableCodecOptions<NumberCodec>): Codec<T | null, U | null>;
52
+ export declare function getNullableCodec<TFrom, TTo extends TFrom = TFrom>(item: FixedSizeCodec<TFrom, TTo>, config: NullableCodecConfig<FixedSizeNumberCodec> & {
53
+ fixed: true;
54
+ }): FixedSizeCodec<TFrom | null, TTo | null>;
55
+ export declare function getNullableCodec<TFrom, TTo extends TFrom = TFrom>(item: FixedSizeCodec<TFrom, TTo, 0>, config?: NullableCodecConfig<FixedSizeNumberCodec>): FixedSizeCodec<TFrom | null, TTo | null>;
56
+ export declare function getNullableCodec<TFrom, TTo extends TFrom = TFrom>(item: Codec<TFrom, TTo>, config?: NullableCodecConfig<NumberCodec> & {
57
+ fixed?: false;
58
+ }): VariableSizeCodec<TFrom | null, TTo | null>;
41
59
  //# sourceMappingURL=nullable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullable.d.ts","sourceRoot":"","sources":["../../src/nullable.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { BaseCodecOptions, Codec, Decoder, Encoder } from '@solana/codecs-core';
2
- import { NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
1
+ import { FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, VariableSizeCodec, VariableSizeDecoder, VariableSizeEncoder } from '@solana/codecs-core';
2
+ import { FixedSizeNumberCodec, FixedSizeNumberDecoder, FixedSizeNumberEncoder, NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
3
  /**
4
4
  * Defines a scalar enum as a type from its constructor.
5
5
  *
@@ -12,8 +12,8 @@ import { NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-number
12
12
  export type ScalarEnum<T> = ({
13
13
  [key: number | string]: string | number | T;
14
14
  } | number | T) & NonNullable<unknown>;
15
- /** Defines the options for scalar enum codecs. */
16
- export type ScalarEnumCodecOptions<TDiscriminator extends NumberCodec | NumberEncoder | NumberDecoder> = BaseCodecOptions & {
15
+ /** Defines the config for scalar enum codecs. */
16
+ export type ScalarEnumCodecConfig<TDiscriminator extends NumberCodec | NumberEncoder | NumberDecoder> = {
17
17
  /**
18
18
  * The codec to use for the enum discriminator.
19
19
  * @defaultValue u8 discriminator.
@@ -24,21 +24,33 @@ export type ScalarEnumCodecOptions<TDiscriminator extends NumberCodec | NumberEn
24
24
  * Creates a scalar enum encoder.
25
25
  *
26
26
  * @param constructor - The constructor of the scalar enum.
27
- * @param options - A set of options for the encoder.
27
+ * @param config - A set of config for the encoder.
28
28
  */
29
- export declare function getScalarEnumEncoder<T>(constructor: ScalarEnum<T>, options?: ScalarEnumCodecOptions<NumberEncoder>): Encoder<T>;
29
+ export declare function getScalarEnumEncoder<TFrom, TFromConstructor extends ScalarEnum<TFrom>>(constructor: TFromConstructor): FixedSizeEncoder<TFrom, 1>;
30
+ export declare function getScalarEnumEncoder<TFrom, TFromConstructor extends ScalarEnum<TFrom>, TSize extends number>(constructor: TFromConstructor, config: ScalarEnumCodecConfig<NumberEncoder> & {
31
+ size: FixedSizeNumberEncoder<TSize>;
32
+ }): FixedSizeEncoder<TFrom, TSize>;
33
+ export declare function getScalarEnumEncoder<TFrom, TFromConstructor extends ScalarEnum<TFrom>>(constructor: TFromConstructor, config?: ScalarEnumCodecConfig<NumberEncoder>): VariableSizeEncoder<TFrom>;
30
34
  /**
31
35
  * Creates a scalar enum decoder.
32
36
  *
33
37
  * @param constructor - The constructor of the scalar enum.
34
- * @param options - A set of options for the decoder.
38
+ * @param config - A set of config for the decoder.
35
39
  */
36
- export declare function getScalarEnumDecoder<T>(constructor: ScalarEnum<T>, options?: ScalarEnumCodecOptions<NumberDecoder>): Decoder<T>;
40
+ export declare function getScalarEnumDecoder<TTo, TToConstructor extends ScalarEnum<TTo>>(constructor: TToConstructor): FixedSizeDecoder<TTo, 1>;
41
+ export declare function getScalarEnumDecoder<TTo, TToConstructor extends ScalarEnum<TTo>, TSize extends number>(constructor: TToConstructor, config: ScalarEnumCodecConfig<NumberDecoder> & {
42
+ size: FixedSizeNumberDecoder<TSize>;
43
+ }): FixedSizeDecoder<TTo, TSize>;
44
+ export declare function getScalarEnumDecoder<TTo, TToConstructor extends ScalarEnum<TTo>>(constructor: TToConstructor, config?: ScalarEnumCodecConfig<NumberDecoder>): VariableSizeDecoder<TTo>;
37
45
  /**
38
46
  * Creates a scalar enum codec.
39
47
  *
40
48
  * @param constructor - The constructor of the scalar enum.
41
- * @param options - A set of options for the codec.
49
+ * @param config - A set of config for the codec.
42
50
  */
43
- export declare function getScalarEnumCodec<T>(constructor: ScalarEnum<T>, options?: ScalarEnumCodecOptions<NumberCodec>): Codec<T>;
51
+ export declare function getScalarEnumCodec<TFrom, TFromConstructor extends ScalarEnum<TFrom>>(constructor: TFromConstructor): FixedSizeCodec<TFrom, TFrom, 1>;
52
+ export declare function getScalarEnumCodec<TFrom, TFromConstructor extends ScalarEnum<TFrom>, TSize extends number>(constructor: TFromConstructor, config: ScalarEnumCodecConfig<NumberCodec> & {
53
+ size: FixedSizeNumberCodec<TSize>;
54
+ }): FixedSizeCodec<TFrom, TFrom, TSize>;
55
+ export declare function getScalarEnumCodec<TFrom, TFromConstructor extends ScalarEnum<TFrom>>(constructor: TFromConstructor, config?: ScalarEnumCodecConfig<NumberCodec>): VariableSizeCodec<TFrom>;
44
56
  //# sourceMappingURL=scalar-enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalar-enum.d.ts","sourceRoot":"","sources":["../../src/scalar-enum.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { BaseCodecOptions, Codec, Decoder, Encoder } from '@solana/codecs-core';
1
+ import { Codec, Decoder, Encoder, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, VariableSizeCodec, VariableSizeDecoder, VariableSizeEncoder } from '@solana/codecs-core';
2
2
  import { NumberCodec, NumberDecoder, NumberEncoder } from '@solana/codecs-numbers';
3
- import { ArrayLikeCodecSize } from './array-like-codec-size';
4
- /** Defines the options for set codecs. */
5
- export type SetCodecOptions<TPrefix extends NumberCodec | NumberEncoder | NumberDecoder> = BaseCodecOptions & {
3
+ import { ArrayLikeCodecSize } from './array';
4
+ /** Defines the config for set codecs. */
5
+ export type SetCodecConfig<TPrefix extends NumberCodec | NumberEncoder | NumberDecoder> = {
6
6
  /**
7
7
  * The size of the set.
8
8
  * @defaultValue u32 prefix.
@@ -13,21 +13,54 @@ export type SetCodecOptions<TPrefix extends NumberCodec | NumberEncoder | Number
13
13
  * Encodes an set of items.
14
14
  *
15
15
  * @param item - The encoder to use for the set's items.
16
- * @param options - A set of options for the encoder.
16
+ * @param config - A set of config for the encoder.
17
17
  */
18
- export declare function getSetEncoder<T>(item: Encoder<T>, options?: SetCodecOptions<NumberEncoder>): Encoder<Set<T>>;
18
+ export declare function getSetEncoder<TFrom>(item: Encoder<TFrom>, config: SetCodecConfig<NumberEncoder> & {
19
+ size: 0;
20
+ }): FixedSizeEncoder<Set<TFrom>, 0>;
21
+ export declare function getSetEncoder<TFrom>(item: FixedSizeEncoder<TFrom>, config: SetCodecConfig<NumberEncoder> & {
22
+ size: number;
23
+ }): FixedSizeEncoder<Set<TFrom>>;
24
+ export declare function getSetEncoder<TFrom>(item: FixedSizeEncoder<TFrom>, config: SetCodecConfig<NumberEncoder> & {
25
+ size: 'remainder';
26
+ }): VariableSizeEncoder<Set<TFrom>>;
27
+ export declare function getSetEncoder<TFrom>(item: Encoder<TFrom>, config?: SetCodecConfig<NumberEncoder> & {
28
+ size?: number | NumberEncoder;
29
+ }): VariableSizeEncoder<Set<TFrom>>;
19
30
  /**
20
31
  * Decodes an set of items.
21
32
  *
22
33
  * @param item - The encoder to use for the set's items.
23
- * @param options - A set of options for the encoder.
34
+ * @param config - A set of config for the encoder.
24
35
  */
25
- export declare function getSetDecoder<T>(item: Decoder<T>, options?: SetCodecOptions<NumberDecoder>): Decoder<Set<T>>;
36
+ export declare function getSetDecoder<TTo>(item: Decoder<TTo>, config: SetCodecConfig<NumberDecoder> & {
37
+ size: 0;
38
+ }): FixedSizeDecoder<Set<TTo>, 0>;
39
+ export declare function getSetDecoder<TTo>(item: FixedSizeDecoder<TTo>, config: SetCodecConfig<NumberDecoder> & {
40
+ size: number;
41
+ }): FixedSizeDecoder<Set<TTo>>;
42
+ export declare function getSetDecoder<TTo>(item: FixedSizeDecoder<TTo>, config: SetCodecConfig<NumberDecoder> & {
43
+ size: 'remainder';
44
+ }): VariableSizeDecoder<Set<TTo>>;
45
+ export declare function getSetDecoder<TTo>(item: Decoder<TTo>, config?: SetCodecConfig<NumberDecoder> & {
46
+ size?: number | NumberDecoder;
47
+ }): VariableSizeDecoder<Set<TTo>>;
26
48
  /**
27
49
  * Creates a codec for an set of items.
28
50
  *
29
51
  * @param item - The codec to use for the set's items.
30
- * @param options - A set of options for the codec.
52
+ * @param config - A set of config for the codec.
31
53
  */
32
- export declare function getSetCodec<T, U extends T = T>(item: Codec<T, U>, options?: SetCodecOptions<NumberCodec>): Codec<Set<T>, Set<U>>;
54
+ export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item: Codec<TFrom, TTo>, config: SetCodecConfig<NumberCodec> & {
55
+ size: 0;
56
+ }): FixedSizeCodec<Set<TFrom>, Set<TTo>, 0>;
57
+ export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item: FixedSizeCodec<TFrom, TTo>, config: SetCodecConfig<NumberCodec> & {
58
+ size: number;
59
+ }): FixedSizeCodec<Set<TFrom>, Set<TTo>>;
60
+ export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item: FixedSizeCodec<TFrom, TTo>, config: SetCodecConfig<NumberCodec> & {
61
+ size: 'remainder';
62
+ }): VariableSizeCodec<Set<TFrom>, Set<TTo>>;
63
+ export declare function getSetCodec<TFrom, TTo extends TFrom = TFrom>(item: Codec<TFrom, TTo>, config?: SetCodecConfig<NumberCodec> & {
64
+ size?: number | NumberCodec;
65
+ }): VariableSizeCodec<Set<TFrom>, Set<TTo>>;
33
66
  //# sourceMappingURL=set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/set.ts"],"names":[],"mappings":"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"}