pub enum LabelPolicy {
Opaque,
EntityNameDefault,
ExternalKeyDefault,
OpaqueByDefault,
}Expand description
Controls how IDs are displayed to humans (via .labeled()).
§Scope
This enum affects only human-facing output. It does NOT affect:
- Display/to_string() → always canonical
- Serialize/serde → always canonical
- Database storage → always canonical
- ID construction → no complexity added
- Equality/hashing → based on canonical ID only
§Usage
Specified on the Label trait (and delegated from Provenance) as POLICY constant.
Controls the default behavior of .labeled() when called with no arguments.
Variants§
Opaque
No preference; defaults to canonical output but encourages explicit mode selection.
Used when the provenance doesn’t have a strong default preference.
Output Scenarios:
id.to_string():"value"(Canonical)id.labeled().to_string():"value"(Default = None)id.labeled().mode(LabelMode::None).to_string():"value"id.labeled().mode(LabelMode::Short).to_string():"Entity::value"id.labeled().mode(LabelMode::Full).to_string():"Entity@prov::value"
EntityNameDefault
Default to showing the entity type name in human output.
Used for internal origins (Generated, Derived) where the entity type provides sufficient context without needing to show provenance details.
Output Scenarios:
id.to_string():"value"(Canonical)id.labeled().to_string():"Entity::value"(Default = Short)id.labeled().mode(LabelMode::None).to_string():"value"id.labeled().mode(LabelMode::Short).to_string():"Entity::value"id.labeled().mode(LabelMode::Full).to_string():"Entity@prov::value"
ExternalKeyDefault
Default to showing both entity and provenance in human output.
Used for external origins (External, Imported) where knowing the source system is critical for understanding and identifying the ID.
Output Scenarios:
id.to_string():"value"(Canonical)id.labeled().to_string():"Entity@prov::value"(Default = Full)id.labeled().mode(LabelMode::None).to_string():"value"id.labeled().mode(LabelMode::Short).to_string():"Entity::value"id.labeled().mode(LabelMode::Full).to_string():"Entity@prov::value"
OpaqueByDefault
Hide all labels by default; only show on explicit request.
Used for sensitive or transient sources (Temporary, ClientProvided) where the ID itself might be sensitive and context shouldn’t leak in logs unless necessary.
Output Scenarios:
id.to_string():"value"(Canonical)id.labeled().to_string():"value"(Default = None)id.labeled().mode(LabelMode::None).to_string():"value"id.labeled().mode(LabelMode::Short).to_string():"Entity::value"id.labeled().mode(LabelMode::Full).to_string():"Entity@prov::value"
Trait Implementations§
Source§impl Clone for LabelPolicy
impl Clone for LabelPolicy
Source§fn clone(&self) -> LabelPolicy
fn clone(&self) -> LabelPolicy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more