use std::{ffi::OsString, path::PathBuf};
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use crate::{PathPrefix, PathType};
mod accessors;
mod builder_mutators;
mod converters;
mod initializers;
mod internal;
mod mutators;
mod trait_impls;
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(from = "PathBuf", into = "PathBuf"))]
#[derive(Debug, Clone, Hash, Eq, PartialEq, PartialOrd, Ord, Default)]
pub struct PavedPath {
pub(crate) path_type: PathType,
pub(crate) path_prefix: Option<PathPrefix>,
pub(crate) directories: Vec<OsString>,
pub(crate) file: Option<OsString>,
pub(crate) inner: PathBuf,
}