Trait KeySpecifierComponent
pub(crate) trait KeySpecifierComponent {
// Required methods
fn to_slug(&self) -> Result<Slug, Bug>;
fn from_slug(s: &Slug) -> Result<Self, InvalidKeyPathComponentValue>
where Self: Sized;
fn fmt_pretty(&self, f: &mut Formatter<'_>) -> Result<(), Error>;
}
Expand description
A trait for serializing and deserializing specific types of Slug
s.
A KeySpecifierComponent
is a specific kind of Slug
. A KeySpecifierComponent
is
always a valid Slug
, but may have a more restricted charset, or more specific
validation rules. A Slug
is not always a valid KeySpecifierComponent
instance.
If you are deriving DefaultKeySpecifier
for a
struct, all of its fields must implement this trait.
If you are implementing KeySpecifier
and [KeyPathInfoExtractor
] manually rather than by
deriving DefaultKeySpecifier
, you do not need to implement this trait.
Required Methods§
fn from_slug(s: &Slug) -> Result<Self, InvalidKeyPathComponentValue>where
Self: Sized,
fn from_slug(s: &Slug) -> Result<Self, InvalidKeyPathComponentValue>where
Self: Sized,
Try to convert s
into an object of this type.
fn fmt_pretty(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt_pretty(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Display the value in a human-meaningful representation
The output should be a single line (without trailing full stop).