combineCodec
调用签名
combineCodec<
TFrom
,TTo
,TSize
>(encoder
,decoder
):FixedSizeCodec
<TFrom
,TTo
,TSize
>
将一个 Encoder
和一个 Decoder
合并为一个 Codec
。
也就是说,给定一个 Encoder<TFrom>
和一个 Decoder<TTo>
,此函数返回一个 Codec<TFrom, TTo>
。
这允许通过保持编码和解码逻辑分离来进行模块化组合,同时仍然提供一种将它们捆绑到单个 Codec
中的便捷方法。
这对于希望分别公开 Encoders
、Decoders
和 Codecs
的库维护者特别有用,从而能够对未使用的逻辑进行 tree-shaking。
提供的 Encoder
和 Decoder
必须在以下方面兼容:
- 固定大小: 如果两者都是固定大小,它们必须具有相同的
fixedSize
值。 - 可变大小: 如果任何一个具有
maxSize
属性,则它必须与另一个匹配。
如果未满足这些条件,将抛出一个 SolanaError。
类型参数
类型参数 | 描述 |
---|---|
TFrom | 要编码的值的类型。 |
TTo | 解码后的值的类型。 |
TSize extends number | 编码后的值的固定大小(以字节为单位)(对于固定大小的编解码器)。 |
参数
参数 | 类型 | 描述 |
---|---|---|
encoder | FixedSizeEncoder <TFrom , TSize > | 要组合的 Encoder 。 |
decoder | FixedSizeDecoder <TTo , TSize > | 要组合的 Decoder 。 |
返回
FixedSizeCodec
<TFrom
, TTo
, TSize
>
一个 Codec
,提供 encode
和 decode
方法。
抛出
SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH
如果编码器和解码器具有不匹配的大小类型(固定与可变),则抛出。SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH
如果两者都是固定大小,但具有不同的fixedSize
值,则抛出。SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH
如果maxSize
属性不匹配,则抛出。
示例
从编码器和解码器创建一个固定大小的 Codec
。
从编码器和解码器创建一个可变大小的 Codec
。
备注
在库中定义编解码器的推荐模式是为编码器、解码器和编解码器公开单独的函数。 这允许用户仅导入他们需要的内容,从而提高 tree-shaking 效率。
参见
调用签名
combineCodec<
TFrom
,TTo
>(encoder
,decoder
):VariableSizeCodec
<TFrom
,TTo
>
将一个 Encoder
和一个 Decoder
合并为一个 Codec
。
也就是说,给定一个 Encoder<TFrom>
和一个 Decoder<TTo>
,此函数返回一个 Codec<TFrom, TTo>
。
这允许通过保持编码和解码逻辑分离来进行模块化组合,同时仍然提供一种将它们捆绑到单个 Codec
中的便捷方法。
这对于希望分别公开 Encoders
、Decoders
和 Codecs
的库维护者特别有用,从而能够对未使用的逻辑进行 tree-shaking。
提供的 Encoder
和 Decoder
必须在以下方面兼容:
- 固定大小: 如果两者都是固定大小,它们必须具有相同的
fixedSize
值。 - 可变大小: 如果任何一个具有
maxSize
属性,则它必须与另一个匹配。
如果未满足这些条件,将抛出一个 SolanaError。
类型参数
类型参数 | 描述 |
---|---|
TFrom | 要编码的值的类型。 |
TTo | 解码后的值的类型。 |
参数
参数 | 类型 | 描述 |
---|---|---|
encoder | VariableSizeEncoder <TFrom > | 要组合的 Encoder 。 |
decoder | VariableSizeDecoder <TTo > | 要组合的 Decoder 。 |
返回
VariableSizeCodec
<TFrom
, TTo
>
一个 Codec
,提供 encode
和 decode
方法。
抛出
SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH
如果编码器和解码器具有不匹配的大小类型(固定与可变),则抛出。SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH
如果两者都是固定大小,但具有不同的fixedSize
值,则抛出。SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH
如果maxSize
属性不匹配,则抛出。
示例
从编码器和解码器创建一个固定大小的 Codec
。
从编码器和解码器创建一个可变大小的 Codec
。
备注
在库中定义编解码器的推荐模式是为编码器、解码器和编解码器公开单独的函数。 这允许用户仅导入他们需要的内容,从而提高 tree-shaking 效率。
参见
调用签名
combineCodec<
TFrom
,TTo
>(encoder
,decoder
):Codec
<TFrom
,TTo
>
将一个 Encoder
和一个 Decoder
合并为一个 Codec
。
也就是说,给定一个 Encoder<TFrom>
和一个 Decoder<TTo>
,此函数返回一个 Codec<TFrom, TTo>
。
这允许通过保持编码和解码逻辑分离来进行模块化组合,同时仍然提供一种将它们捆绑到单个 Codec
中的便捷方法。
这对于希望分别公开 Encoders
、Decoders
和 Codecs
的库维护者特别有用,从而能够对未使用的逻辑进行 tree-shaking。
提供的 Encoder
和 Decoder
必须在以下方面兼容:
- 固定大小: 如果两者都是固定大小,它们必须具有相同的
fixedSize
值。 - 可变大小: 如果任何一个具有
maxSize
属性,则它必须与另一个匹配。
如果未满足这些条件,将抛出一个 SolanaError。
类型参数
类型参数 | 描述 |
---|---|
TFrom | 要编码的值的类型。 |
TTo | 解码后的值的类型。 |
参数
返回
Codec
<TFrom
, TTo
>
一个 Codec
,提供 encode
和 decode
方法。
抛出
SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH
如果编码器和解码器具有不匹配的大小类型(固定与可变),则抛出。SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH
如果两者都是固定大小,但具有不同的fixedSize
值,则抛出。SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH
如果maxSize
属性不匹配,则抛出。
示例
从编码器和解码器创建一个固定大小的 Codec
。
从编码器和解码器创建一个可变大小的 Codec
。
备注
在库中定义编解码器的推荐模式是为编码器、解码器和编解码器公开单独的函数。 这允许用户仅导入他们需要的内容,从而提高 tree-shaking 效率。