createEncoder
调用签名
createEncoder<
TFrom
,TSize
>(encoder
):FixedSizeEncoder
<TFrom
,TSize
>
通过使用提供的 write
函数和 fixedSize
属性(/api/functions/for FixedSizeEncoders)或
getSizeFromValue
函数(/api/functions/for VariableSizeEncoders)来填充缺失的 encode
函数,从而创建一个 Encoder
。
此实用程序不是手动实现 encode
,而是利用现有的 write
函数和大小辅助函数来生成完整的 encoder。提供的 encode
方法将分配
一个正确大小的新的 Uint8Array
,并使用 write
填充它。
类型参数
Type Parameter | Description |
---|---|
TFrom | 要编码的值的类型。 |
TSize extends number | 编码后的值(对于固定大小的 encoder)的固定大小(以字节为单位)。 |
参数
Parameter | Type | Description |
---|---|---|
encoder | Omit <FixedSizeEncoder <TFrom , TSize >, "encode" > | 一个实现了 write ,但未实现 encode 的 encoder 对象。 - 如果 encoder 具有 fixedSize 属性,则将其视为 FixedSizeEncoder。 - 否则,它将被视为 VariableSizeEncoder。 |
返回
FixedSizeEncoder
<TFrom
, TSize
>
一个具有完整功能的 Encoder
,同时具有 write
和 encode
方法。
示例
创建一个自定义的固定大小 encoder。
创建一个自定义的可变大小 encoder:
备注
请注意,虽然 createEncoder
对于定义更复杂的 encoder 很有用,但更常见的是使用 @solana/codecs
包的各种辅助函数和原语将 encoder 组合在一起。
以下是一些使用 codec 原语而不是 createEncoder
的替代示例。
参见
- Encoder
- FixedSizeEncoder
- VariableSizeEncoder
- getStructEncoder
- getU32Encoder
- getUtf8Encoder
- addEncoderSizePrefix
调用签名
createEncoder<
TFrom
>(encoder
):VariableSizeEncoder
<TFrom
>
通过使用提供的 write
函数和 fixedSize
属性(/api/functions/for FixedSizeEncoders)或
getSizeFromValue
函数(/api/functions/for VariableSizeEncoders)来填充缺失的 encode
函数,从而创建一个 Encoder
。
此实用程序不是手动实现 encode
,而是利用现有的 write
函数和大小辅助函数来生成完整的 encoder。提供的 encode
方法将分配
一个正确大小的新的 Uint8Array
,并使用 write
填充它。
类型参数
Type Parameter | Description |
---|---|
TFrom | 要编码的值的类型。 |
参数
Parameter | Type | Description |
---|---|---|
encoder | Omit <VariableSizeEncoder <TFrom >, "encode" > | 一个实现了 write ,但未实现 encode 的 encoder 对象。 - 如果 encoder 具有 fixedSize 属性,则将其视为 FixedSizeEncoder。 - 否则,它将被视为 VariableSizeEncoder。 |
返回
VariableSizeEncoder
<TFrom
>
一个具有完整功能的 Encoder
,同时具有 write
和 encode
方法。
示例
创建一个自定义的固定大小 encoder。
创建一个自定义的可变大小 encoder:
备注
请注意,虽然 createEncoder
对于定义更复杂的 encoder 很有用,但更常见的是使用 @solana/codecs
包的各种辅助函数和原语将 encoder 组合在一起。
以下是一些使用 codec 原语而不是 createEncoder
的替代示例。
参见
- Encoder
- FixedSizeEncoder
- VariableSizeEncoder
- getStructEncoder
- getU32Encoder
- getUtf8Encoder
- addEncoderSizePrefix
调用签名
createEncoder<
TFrom
>(encoder
):Encoder
<TFrom
>
通过使用提供的 write
函数和 fixedSize
属性(/api/functions/for FixedSizeEncoders)或
getSizeFromValue
函数(/api/functions/for VariableSizeEncoders)来填充缺失的 encode
函数,从而创建一个 Encoder
。
此实用程序不是手动实现 encode
,而是利用现有的 write
函数和大小辅助函数来生成完整的 encoder。提供的 encode
方法将分配
一个正确大小的新的 Uint8Array
,并使用 write
填充它。
类型参数
Type Parameter | Description |
---|---|
TFrom | 要编码的值的类型。 |
参数
Parameter | Type | Description |
---|---|---|
encoder | Omit <FixedSizeEncoder <TFrom , number >, "encode" > | Omit <VariableSizeEncoder <TFrom >, "encode" > | 一个实现了 write ,但未实现 encode 的 encoder 对象。 - 如果 encoder 具有 fixedSize 属性,则将其视为 FixedSizeEncoder。 - 否则,它将被视为 VariableSizeEncoder。 |
返回
Encoder
<TFrom
>
一个具有完整功能的 Encoder
,同时具有 write
和 encode
方法。
示例
创建一个自定义的固定大小 encoder。
创建一个自定义的可变大小 encoder:
备注
请注意,虽然 createEncoder
对于定义更复杂的 encoder 很有用,但更常见的是使用 @solana/codecs
包的各种辅助函数和原语将 encoder 组合在一起。
以下是一些使用 codec 原语而不是 createEncoder
的替代示例。