Skip to main content

register_value_string_codec

Macro register_value_string_codec 

Source
macro_rules! register_value_string_codec {
    (id = $id:expr, codec = $codec:ty, value = $value:ty $(,)?) => { ... };
}
Expand description

Registers a default-constructible bidirectional string codec.

The macro must be invoked at module scope; it defines the descriptor, a registration function, and an inventory submission in an anonymous const. The id must be a constant expression. Use a literal, constant, or const fn result; a runtime function call cannot define a static ID. The encoder and decoder error types must implement Error + Send + Sync + 'static, as required by ValueStringCodecDescriptor::of.

§Examples

ⓘ
use qubit_codec::JsonStringValueCodec;
use qubit_codec::register_value_string_codec;

fn invalid_id() -> &'static str { "example.u32" }
register_value_string_codec!(id = invalid_id(), codec = JsonStringValueCodec<u32>, value = u32);
ⓘ
use qubit_codec::JsonStringValueCodec;
use qubit_codec::register_value_string_codec;
register_value_string_codec!(id = "invalid-id", codec = JsonStringValueCodec<u32>, value = u32);
use qubit_codec::JsonStringValueCodec;
use qubit_codec::register_value_string_codec;

register_value_string_codec!(
    id = "example.u32",
    codec = JsonStringValueCodec<u32>,
    value = u32,
);