pub trait FromNormalizedStr: FromStr<Err = ParseErrors> + Display {
// Required method
fn describe_self() -> &'static str;
// Provided method
fn from_normalized_str(s: &str) -> Result<Self, ParseErrors> { ... }
}
Expand description
Trait for parsing “normalized” strings only, throwing an error if a
non-normalized string is encountered. See docs on the
FromNormalizedStr::from_normalized_str
trait function.
Required Methods§
Sourcefn describe_self() -> &'static str
fn describe_self() -> &'static str
Short string description of the Self
type, to be used in error messages.
What are we trying to parse?
Provided Methods§
Sourcefn from_normalized_str(s: &str) -> Result<Self, ParseErrors>
fn from_normalized_str(s: &str) -> Result<Self, ParseErrors>
Create a Self
by parsing a string, which is required to be normalized.
That is, the input is required to roundtrip with the Display
impl on Self
:
Self::from_normalized_str(x).to_string() == x
must hold.
In Cedar’s context, that means that from_normalized_str()
will not
accept strings with spurious whitespace (e.g. A :: B :: C::"foo"
),
Cedar comments (e.g. A::B::"bar" // comment
), etc. See
RFC 9
for more details and justification.
For the version that accepts whitespace and Cedar comments, use the
actual FromStr
implementations.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.