#[derive(ReadableKeypaths)]Expand description
Derives only readable keypath methods for struct fields.
This macro is a convenience wrapper that generates only readable keypaths,
equivalent to using #[derive(Kp)] with #[Readable] on the struct.
§Generated Methods
For each field field_name, generates:
field_name_r()- Returns aKeyPath<Struct, FieldType>for non-optional fieldsfield_name_fr()- Returns anOptionalKeyPath<Struct, InnerType>for optional/container fieldsfield_name_fr_at(index)- Returns anOptionalKeyPathfor indexed access
§Examples
ⓘ
use keypaths_proc::ReadableKeypaths;
#[derive(ReadableKeypaths)]
struct User {
name: String,
email: Option<String>,
tags: Vec<String>,
}
// Usage:
let user = User {
name: "Akash".to_string(),
email: Some("alice@example.com".to_string()),
tags: vec!["admin".to_string()],
};
let name_path = User::name_r();
let email_path = User::email_fr();
let name = name_path.get(&user); // &String
let email = email_path.get(&user); // Option<&String>