diff options
author | Martin Robinson <mrobinson@igalia.com> | 2023-10-05 19:47:39 +0200 |
---|---|---|
committer | Martin Robinson <mrobinson@igalia.com> | 2023-11-03 15:38:18 +0000 |
commit | f4d3af296c05260dfbb3deea4f8fa400cb6887d3 (patch) | |
tree | 169db2cc68e01a755b30500dd525f1a2ec2da861 /components/gfx_traits/print_tree.rs | |
parent | 863529d9622c68f0a9535225237eb5e5c5b8c757 (diff) | |
download | servo-f4d3af296c05260dfbb3deea4f8fa400cb6887d3.tar.gz servo-f4d3af296c05260dfbb3deea4f8fa400cb6887d3.zip |
Move `*_traits` and other shared types to `shared`
This is the start of the organization of types that are in their own
crates in order to break dependency cycles between other crates. The
idea here is that putting these packages into their own directory is the
first step toward cleaning them up. They have grown organically and it
is difficult to explain to new folks where to put new shared types. Many
of these crates contain more than traits or don't contain traits at all.
Notably, `script_traits` isn't touched because it is vendored from
Gecko. Eventually this will move to `third_party`.
Diffstat (limited to 'components/gfx_traits/print_tree.rs')
-rw-r--r-- | components/gfx_traits/print_tree.rs | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/components/gfx_traits/print_tree.rs b/components/gfx_traits/print_tree.rs deleted file mode 100644 index 60201733c66..00000000000 --- a/components/gfx_traits/print_tree.rs +++ /dev/null @@ -1,89 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -/// A struct that makes it easier to print out a pretty tree of data, which -/// can be visually scanned more easily. -pub struct PrintTree { - /// The current level of recursion. - level: u32, - - /// An item which is queued up, so that we can determine if we need - /// a mid-tree prefix or a branch ending prefix. - queued_item: Option<String>, -} - -impl PrintTree { - pub fn new(title: String) -> PrintTree { - println!("\u{250c} {}", title); - PrintTree { - level: 1, - queued_item: None, - } - } - - /// Descend one level in the tree with the given title string. - pub fn new_level(&mut self, queued_title: String) { - self.flush_queued_item("\u{251C}\u{2500}"); - - self.print_level_prefix(); - - let items: Vec<&str> = queued_title.split("\n").collect(); - println!("\u{251C}\u{2500} {}", items[0]); - for i in 1..items.len() { - self.print_level_child_indentation(); - print!("{}", items[i]); - if i < items.len() { - print!("\n"); - } - } - - self.level = self.level + 1; - } - - /// Ascend one level in the tree. - pub fn end_level(&mut self) { - self.flush_queued_item("\u{2514}\u{2500}"); - self.level -= 1; - } - - /// Add an item to the current level in the tree. - pub fn add_item(&mut self, text: String) { - self.flush_queued_item("\u{251C}\u{2500}"); - self.queued_item = Some(text); - } - - fn print_level_prefix(&self) { - for _ in 0..self.level { - print!("\u{2502} "); - } - } - - fn print_level_child_indentation(&self) { - for _ in 0..(self.level + 1) { - print!("\u{2502} "); - } - print!("{}", " ".repeat(7)); - } - - fn flush_queued_item(&mut self, prefix: &str) { - if let Some(queued_item) = self.queued_item.take() { - self.print_level_prefix(); - let items: Vec<&str> = queued_item.split("\n").collect(); - println!("{} {}", prefix, items[0]); - for i in 1..items.len() { - self.print_level_child_indentation(); - print!("{}", items[i]); - if i < items.len() { - print!("\n"); - } - } - } - } -} - -impl Drop for PrintTree { - fn drop(&mut self) { - self.flush_queued_item("\u{2514}\u{2500}"); - } -} |