Skip to main content

yazi_shared/strand/
kind.rs

1use crate::{path::PathKind, scheme::SchemeKind};
2
3#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
4pub enum StrandKind {
5	Utf8  = 0,
6	Os    = 1,
7	Bytes = 2,
8}
9
10impl From<PathKind> for StrandKind {
11	fn from(value: PathKind) -> Self {
12		match value {
13			PathKind::Os => Self::Os,
14			PathKind::Unix => Self::Bytes,
15		}
16	}
17}
18
19impl From<SchemeKind> for StrandKind {
20	fn from(value: SchemeKind) -> Self {
21		match value {
22			SchemeKind::Regular => Self::Os,
23			SchemeKind::Search => Self::Os,
24			SchemeKind::Archive => Self::Os,
25			SchemeKind::Sftp => Self::Bytes,
26		}
27	}
28}