mod components;
mod iter;
mod path;
mod pathbuf;
#[macro_use]
pub(crate) mod parser;
use core::hash::Hasher;
pub use components::*;
pub use iter::*;
pub use parser::ParseError;
pub use path::*;
pub use pathbuf::*;
use crate::common::errors::CheckedPathError;
use crate::no_std_compat::*;
use crate::private;
pub trait Encoding: private::Sealed {
type Components<'a>: Components<'a>;
fn label() -> &'static str;
fn components(path: &[u8]) -> Self::Components<'_>;
fn hash<H: Hasher>(path: &[u8], h: &mut H);
fn push(current_path: &mut Vec<u8>, path: &[u8]);
fn push_checked(current_path: &mut Vec<u8>, path: &[u8]) -> Result<(), CheckedPathError>;
}