perf(identifier): use pattern matching

way more efficient than manual slicing
This commit is contained in:
EdJoPaTo
2023-05-20 01:49:43 +02:00
parent 3e92570a16
commit 837e24ab4b
+5 -8
View File
@@ -23,12 +23,9 @@ pub type TreeIdentifierVec = Vec<usize>;
/// assert_eq!(branch, []);
/// assert_eq!(leaf, None);
/// ```
pub fn get_without_leaf(identifier: TreeIdentifier) -> (TreeIdentifier, Option<&usize>) {
let length = identifier.len();
let length_without_leaf = length.saturating_sub(1);
let branch = &identifier[0..length_without_leaf];
let leaf = identifier.get(length_without_leaf);
(branch, leaf)
pub const fn get_without_leaf(identifier: TreeIdentifier) -> (TreeIdentifier, Option<&usize>) {
match identifier {
[branch @ .., leaf] => (branch, Some(leaf)),
[] => (&[] as &[usize], None),
}
}