On Mon Sep 28, 2026 at 5:42 PM JST, Eliot Courtney wrote:
<...>
> + // Tests that encoding via the `nvkv_encode!` macro works correctly.
> + #[test]
> + fn encode_typed_struct() -> Result {
> + const U32_KEY: KeyId = 0x0001;
> + const U64_KEY: KeyId = 0x0002;
> + const NAME_KEY: KeyId = 0x0003;
> + const FIXED_KEY: KeyId = 0x0004;
> + const OPT_KEY: KeyId = 0x0005;
> + const INDEXED_KEY: KeyId = 0x0006;
> +
> + nvkv_encode! {
> + struct TypedRequest {
> + a: Key<u32, U32_KEY>,
> + b: Key<u64, U64_KEY>,
> + name: Key<&'static [u8], NAME_KEY>,
> + fixed: Key<[u8; 4], FIXED_KEY>,
> + opt: Option<Key<u32, OPT_KEY>>,
> + indexed: IndexedKey<u32, INDEXED_KEY>,
API question: `IndexedKey` is module-private, but this use of
`nvkv_encode` looks like something that driver code could very well do.
Should it be crate-visible? If so, why not move it next to `Key` in
`nvkv.rs`?