#[non_exhaustive]pub struct Vector {
pub name: &'static str,
pub template: &'static str,
pub keys: &'static [(u8, &'static str)],
pub fingerprints: &'static [(u8, [u8; 4])],
pub force_chunked: bool,
pub path: Option<&'static str>,
}Expand description
One entry of the canonical test-vector corpus.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: &'static strVector identifier — used in test failure messages and as a stable handle for cross-suite filtering. Convention: snake_case mirroring the wallet-policy template’s distinguishing structure.
template: &'static strBIP-388 wallet-policy template string the vector encodes. Parsed
by parse::template; round-tripped through encode and decode.
keys: &'static [(u8, &'static str)](@N, xpub) pairs binding each @N placeholder in template. Empty
when the vector exercises template-only paths (no key binding).
fingerprints: &'static [(u8, [u8; 4])](@N, 4-byte master fingerprint) pairs aligned with keys. Empty
when the vector does not exercise fingerprint round-tripping.
force_chunked: boolWhen true, force the encoder onto the chunked wire path even if the payload would fit in a single chunk. Exercises chunk-boundary logic without padding the template artificially.
path: Option<&'static str>Explicit shared origin path applied via the encoder’s --path
override (m/... literal, or a named bip44|48|49|84|86 form).
None = elided origin — the encoder infers the canonical origin via
canonical_origin. Some(..) is REQUIRED for non-canonical shapes
(tr() + TapTree, NUMS-taproot) whose canonical_origin returns
None: without an explicit origin they mint a card the decoder
rejects with MissingExplicitOrigin. Carried into the emitted
.descriptor.json via path_decl (the .template file alone does
not determine it), so the BIP §Test Vectors table pins the
template+path pair for path-carrying rows.