aboutsummaryrefslogtreecommitdiffstats
path: root/components/shared/gfx/print_tree.rs
diff options
context:
space:
mode:
authorMartin Robinson <mrobinson@igalia.com>2024-05-17 14:28:58 +0200
committerGitHub <noreply@github.com>2024-05-17 12:28:58 +0000
commit3398fc017b994fff113342baab47718a44a37752 (patch)
tree9ec5881db059b0bda7d374ad4d0abe96319e5c25 /components/shared/gfx/print_tree.rs
parent1017533297889beca40be5f121629347963fbf27 (diff)
downloadservo-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.rs89
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}");
- }
-}