Expand description
§facet-path
§facet-path
Path tracking for navigating Facet type structures.
This crate provides lightweight path tracking that records navigation steps through a Facet type hierarchy. When an error occurs during serialization or deserialization, the path can be used to produce helpful error messages showing exactly where in the data structure the problem occurred.
§Features
- Lightweight
PathStepenum that stores indices, not strings - Reconstruct human-readable paths by replaying steps against a
Shape - Optional
prettyfeature for rich error rendering withfacet-pretty
§Usage
use facet::Facet;
use facet_path::{Path, PathStep};
#[derive(Facet)]
struct Outer {
items: Vec<Inner>,
}
#[derive(Facet)]
struct Inner {
name: String,
value: u32,
}
// Build a path during traversal
let mut path = Path::new(<Outer as Facet>::SHAPE);
path.push(PathStep::Field(0)); // "items"
path.push(PathStep::Index(2)); // [2]
path.push(PathStep::Field(0)); // "name"
// Format the path as a human-readable string
let formatted = path.format();
assert_eq!(formatted, "items[2].name");§Feature Flags
std(default): Enables standard library supportalloc: Enables heap allocation without full stdpretty: Enables rich error rendering withfacet-pretty
§Sponsors
Thanks to all individual sponsors:
…along with corporate sponsors:
…without whom this work could not exist.
§Special thanks
The facet logo was drawn by Misiasart.
§License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Re-exports§
pub use access::PathAccessError;pub use walk::ShapeVisitor;pub use walk::VisitDecision;pub use walk::WalkStatus;pub use walk::walk_shape;
Modules§
- access
- Error types for path-based value access.
- walk
- Shape-only visitor API for deterministic traversal of
Shapetrees.
Structs§
- Path
- A path through a type structure, recorded as a series of steps.
Enums§
- Path
Step - A single step in a path through a type structure.