cedar_policy_core

Trait FromNormalizedStr

Source
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§

Source

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§

Source

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.

Implementors§