Trait typed_path::Utf8Encoding
source · pub trait Utf8Encoding<'a>: Sealed {
type Components: Utf8Components<'a>;
// Required methods
fn label() -> &'static str;
fn components(path: &'a str) -> Self::Components;
fn hash<H: Hasher>(path: &str, h: &mut H);
fn push(current_path: &mut String, path: &str);
fn push_checked(
current_path: &mut String,
path: &str
) -> Result<(), CheckedPathError>;
}
Expand description
Interface to provide meaning to a byte slice such that paths can be derived
Required Associated Types§
sourcetype Components: Utf8Components<'a>
type Components: Utf8Components<'a>
Represents the type of component that will be derived by this encoding
Required Methods§
sourcefn components(path: &'a str) -> Self::Components
fn components(path: &'a str) -> Self::Components
Produces an iterator of Utf8Component
s over the given the byte slice (path
)
sourcefn push(current_path: &mut String, path: &str)
fn push(current_path: &mut String, path: &str)
Pushes a utf8 str (path
) onto the an existing path (current_path
)
sourcefn push_checked(
current_path: &mut String,
path: &str
) -> Result<(), CheckedPathError>
fn push_checked( current_path: &mut String, path: &str ) -> Result<(), CheckedPathError>
Like Utf8Encoding::push
, but enforces several new rules:
path
cannot contain a prefix component.path
cannot contain a root component.path
cannot contain invalid filename characters.path
cannot contain parent components such that the current path would be escaped.
Object Safety§
This trait is not object safe.