From 2ddf3a0196ced74fad91c191f443def41ec2e84c Mon Sep 17 00:00:00 2001 From: Nixon <43715558+nixonyh@users.noreply.github.com> Date: Thu, 12 Mar 2026 20:53:52 +0800 Subject: [PATCH] Improve docs --- README.md | 10 ++++++---- src/field.rs | 12 ++++++------ src/registry.rs | 4 ++-- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index cc14b0c..fbdf45e 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,10 @@ types. ## Example ```rust -use field_path::registry::FieldAccessorRegistry; use field_path::field; use field_path::field_accessor; +use field_path::field_accessor::FieldAccessor; +use field_path::registry::FieldAccessorRegistry; #[derive(Default)] struct Vec2 { @@ -43,16 +44,17 @@ struct Vec2 { pub y: T, } +const FIELD_ACC: FieldAccessor, f32> = field_accessor!(>::x); + let mut registry = FieldAccessorRegistry::default(); -let field = field!(>::x); // Register accessors. -registry.register_field(field_accessor!(>::x)); +registry.register_field(FIELD_ACC); // Access field generically. let mut v = Vec2::default(); let accessor = - registry.get::, f32>(&field.untyped()).unwrap(); + registry.get::, f32>(&FIELD_ACC.field.untyped()).unwrap(); *accessor.get_mut(&mut v) = 42.0; assert_eq!(accessor.get_ref(&v), &42.0); diff --git a/src/field.rs b/src/field.rs index a5749b1..55e196c 100644 --- a/src/field.rs +++ b/src/field.rs @@ -26,15 +26,15 @@ use crate::field; /// A `Field` can also be created at compile time, allowing us to /// create `const` or `static` fields. /// -/// # Validation +/// ## Validation /// /// The [`field!`] macro ensures that both the path and type used are /// valid. Constructing `Field` manually may result in mismatches. /// -/// # Example +/// ## Example /// ``` -/// use field_path::field::Field; /// use field_path::field; +/// use field_path::field::Field; /// use field_path::stringify_field; /// /// struct Player { @@ -166,11 +166,11 @@ impl _FieldBuilder { /// Creates a [`Field`] with path and type safety. /// -/// # Example +/// ## Example /// /// ``` -/// use field_path::field::Field; /// use field_path::field; +/// use field_path::field::Field; /// /// struct Player { /// name: String, @@ -314,7 +314,7 @@ where /// auto-completion of nested fields while still being able to generate /// "stringify" field paths from raw tokens! /// -/// # Example +/// ## Example /// /// ``` /// use field_path::stringify_field; diff --git a/src/registry.rs b/src/registry.rs index 0f8682f..b649a6b 100644 --- a/src/registry.rs +++ b/src/registry.rs @@ -36,10 +36,10 @@ impl FieldAccessorRegistry { /// Provides convenient registration of typed accessors and /// retrieval as typed [`Accessor`]s with runtime checking. /// -/// # Example +/// ## Example /// ``` -/// use field_path::registry::AccessorRegistry; /// use field_path::accessor; +/// use field_path::registry::AccessorRegistry; /// /// struct Foo { value: i32 } ///