#[non_exhaustive]pub enum FieldFormat {
Text,
Number {
unit: Option<&'static str>,
},
Percentage,
Boolean,
Timestamp,
Position,
Enum {
variants: &'static [&'static str],
},
Nested {
nested_type_id: TypeId,
},
List {
item_format: Box<FieldFormat>,
},
JsonString,
BlobRef,
}Expand description
How a single field is intended to be rendered. Downstream renderers (CLI typed-output paths, operator UIs, introspection tools) dispatch off this to pick a display strategy. The renderer owns the actual formatting; the descriptor just carries the hint.
FieldFormat::Text is the safe default — a renderer that doesn’t
recognise a more specific variant can always fall back to text.
#[non_exhaustive]: additional format hints can be added in follow-on
commits without breaking external consumers that match on this enum
(they need a wildcard arm).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Text
Plain string. Renderer displays the value verbatim.
Number
Numeric value with an optional unit suffix (e.g. "m", "m/s",
"min"). Renderer typically displays "<n> <unit>".
Percentage
Floating-point value in [0.0, 1.0] rendered as a percentage
(e.g. 0.95 → "95.0%").
Boolean
Boolean — true/false.
Timestamp
common.v1.Timestamp — renderer typically emits RFC 3339.
Position
common.v1.Position — renderer typically emits
"<lat>°N, <lon>°W, <alt>m".
Enum
Enum (proto3 integer at the wire level). Variants are the canonical proto3 names in declaration order; index by integer value to look up the label. Renderer typically displays the label.
Nested
Nested protobuf message. Renderer recurses via the registry to
the referenced type’s TypeDescriptor. nested_type_id is the
canonical id of the sub-message.
List
Repeated field. item_format describes how each element
renders. Renderer typically emits a list / table.
Fields
item_format: Box<FieldFormat>JsonString
JSON-encoded string field (e.g. proto3 metadata_json).
Renderer typically pretty-prints the embedded JSON.
BlobRef
BlobRef metadata — renderer emits "<blob:<size> sha256:<hash>>"
without dereferencing the blob contents.
Trait Implementations§
Source§impl Clone for FieldFormat
impl Clone for FieldFormat
Source§fn clone(&self) -> FieldFormat
fn clone(&self) -> FieldFormat
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more