mod components;
mod iter;
mod path;
mod pathbuf;
use core::hash::Hasher;
pub use components::*;
pub use iter::*;
pub use path::*;
pub use pathbuf::*;
use crate::common::errors::CheckedPathError;
use crate::no_std_compat::*;
use crate::private;
pub trait Utf8Encoding: private::Sealed {
type Components<'a>: Utf8Components<'a>;
fn label() -> &'static str;
fn components(path: &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>;
}