diff options
author | Martin Robinson <mrobinson@igalia.com> | 2024-05-17 14:28:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-17 12:28:58 +0000 |
commit | 3398fc017b994fff113342baab47718a44a37752 (patch) | |
tree | 9ec5881db059b0bda7d374ad4d0abe96319e5c25 /components/shared/gfx/print_tree.rs | |
parent | 1017533297889beca40be5f121629347963fbf27 (diff) | |
download | servo-3398fc017b994fff113342baab47718a44a37752.tar.gz servo-3398fc017b994fff113342baab47718a44a37752.zip |
Move non-gfx things out of `gfx_traits` and create a `base` crate (#32296)
For a long time, `gfx_traits` has held a lot of things unrelated to graphics
and also unrelated to the `gfx` crate (which is mostly about fonts).
This is a cleanup which does a few things:
1. Move non `gfx` crate things out of `gfx_traits`. This is important in
order to prevent dependency cycles with a different integration between
layout, script, and fonts.
2. Rename the `msg` crate to `base`. It didn't really contain anything
to do with messages and instead mostly holds ids, which are used
across many different crates in Servo. This new crate will hold the
*rare* data types that are widely used.
Details:
- All BackgroundHangMonitor-related things from base to a new
`background_hang_monitor_api` crate.
- Moved `TraversalDirection` to `script_traits`
- Moved `Epoch`-related things from `gfx_traits` to `base`.
- Moved `PrintTree` to base. This should be widely useful in Servo.
- Moved `WebrenderApi` from `base` to `webrender_traits` and renamed it
to `WebRenderFontApi`.
Diffstat (limited to 'components/shared/gfx/print_tree.rs')
-rw-r--r-- | components/shared/gfx/print_tree.rs | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/components/shared/gfx/print_tree.rs b/components/shared/gfx/print_tree.rs deleted file mode 100644 index 03e47b21317..00000000000 --- a/components/shared/gfx/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() { - println!(); - } - } - - 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() { - println!(); - } - } - } - } -} - -impl Drop for PrintTree { - fn drop(&mut self) { - self.flush_queued_item("\u{2514}\u{2500}"); - } -} |