diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-05-09 13:20:13 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-05-09 13:20:13 +0200 |
commit | 16c7608bcfb876866abd62b65276951ee2a81b54 (patch) | |
tree | 8cf0cbb52c8212747e0c3a90df0ffb844fb91f7e /sys/nixpkgs/pkgs/lf-make-map/src/mapping/map_tree/mod.rs | |
parent | feat(pkgs/lf-make-map): Support depths > 2 (diff) | |
download | nixos-config-16c7608bcfb876866abd62b65276951ee2a81b54.tar.gz nixos-config-16c7608bcfb876866abd62b65276951ee2a81b54.zip |
feat(pkgs/lf-make-map): Add de-serialization to lf mappings
Diffstat (limited to 'sys/nixpkgs/pkgs/lf-make-map/src/mapping/map_tree/mod.rs')
-rw-r--r-- | sys/nixpkgs/pkgs/lf-make-map/src/mapping/map_tree/mod.rs | 38 |
1 files changed, 8 insertions, 30 deletions
diff --git a/sys/nixpkgs/pkgs/lf-make-map/src/mapping/map_tree/mod.rs b/sys/nixpkgs/pkgs/lf-make-map/src/mapping/map_tree/mod.rs index 44adc483..35e6d91d 100644 --- a/sys/nixpkgs/pkgs/lf-make-map/src/mapping/map_tree/mod.rs +++ b/sys/nixpkgs/pkgs/lf-make-map/src/mapping/map_tree/mod.rs @@ -9,6 +9,7 @@ use super::MapKey; pub mod display; pub mod iterator; +pub mod lf_mapping; /// A prefix tree #[derive(Debug)] @@ -38,22 +39,8 @@ impl MappingTree { &self.root } - pub fn iter(&self) -> MappingTreeIterator { - MappingTreeIterator::new(&self) - } - - /// Returns the node at the key, otherwise None - pub fn get(&self, key: &[MapKey]) -> Option<&Node> { - let mut current_node = &self.root; - for ch in key.iter() { - if let NodeValue::Parent { children } = ¤t_node.value { - current_node = children.get(&ch)? - } else { - return None; - } - } - - Some(current_node) + pub fn iter(&self, ignore_extendable: bool) -> MappingTreeIterator { + MappingTreeIterator::new(&self, ignore_extendable) } /// Returns the node at the key, otherwise None. The node can be changed @@ -126,7 +113,11 @@ impl MappingTree { } )); - let child_value = if let NodeValue::Child { path, extandable } = child_value { + let child_value = if let NodeValue::Child { + path, + extandable: _, + } = child_value + { NodeValue::Child { path, extandable: false, @@ -147,18 +138,6 @@ impl MappingTree { Ok(()) } - pub fn replace_node(&mut self, key: &[MapKey], node: Node) -> Node { - let parent = self.get_mut(&key[..key.len() - 1]).expect("Must be some"); - - if let NodeValue::Parent { children } = &mut parent.value { - children - .insert(key[key.len() - 1].clone(), node) - .expect("This must exist, otherwise insert would have been used") - } else { - unreachable!("All parent nodes should be parent nodes"); - } - } - pub fn insert_node(&mut self, key: &[MapKey], node: Node) -> Result<()> { let (_node, found_key) = self.try_get(key).clone(); @@ -348,7 +327,6 @@ Please rename the paths to fix this. foreign_key[0].part_path, ); } - assert_eq!(our_key.len(), foreign_key.len()); debug!( "Found a better one: '{}' ('{}') and '{}' ('{}')", |