archunit/graph/projection/
folder_depth_collapse.rsuse super::GraphQueryError;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct FolderDepthCollapse {
depth: usize,
}
impl FolderDepthCollapse {
pub fn new(depth: usize) -> Result<Self, GraphQueryError> {
if depth == 0 {
return Err(GraphQueryError::ZeroFolderDepth);
}
Ok(Self { depth })
}
#[must_use]
pub const fn depth(self) -> usize {
self.depth
}
}
#[cfg(test)]
mod tests {
use super::FolderDepthCollapse;
use crate::graph::GraphQueryError;
#[test]
fn requires_a_positive_depth() {
assert_eq!(
FolderDepthCollapse::new(2)
.expect("positive depth should be valid")
.depth(),
2
);
assert!(matches!(
FolderDepthCollapse::new(0),
Err(GraphQueryError::ZeroFolderDepth)
));
}
}