1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// =============================================================================
// Copyright (c) 2026 Haixing Hu.
//
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0.
// =============================================================================
//! Inventory factory for string-codec registrations.
use collect;
use crateValueStringCodecRegistration;
/// Callback wrapper submitted by
/// [`register_value_string_codec!`](crate::register_value_string_codec) for
/// link-time collection. The global registry invokes each callback to create
/// its owned registration; callers normally use the registration macro rather
/// than constructing this hidden support type directly.
///
/// # Examples
///
/// ```
/// # #[cfg(all(feature = "json", feature = "registry"))]
/// # {
/// use qubit_codec::JsonStringValueCodec;
/// use qubit_codec::ValueStringCodecRegistry;
/// use qubit_codec::register_value_string_codec;
///
/// register_value_string_codec!(
/// id = "example.factory.u32",
/// codec = JsonStringValueCodec<u32>,
/// value = u32,
/// );
///
/// let registry = ValueStringCodecRegistry::global();
/// assert!(registry.get("example.factory.u32").is_some());
/// # }
/// ```
,
);
collect!;