style: Applied formatting to all files
This commit is contained in:
+16
-19
@@ -1,36 +1,33 @@
|
|||||||
use std::hint::black_box;
|
use std::hint::black_box;
|
||||||
|
|
||||||
use criterion::{criterion_group, criterion_main, BatchSize, Criterion, Throughput};
|
use criterion::{criterion_group, criterion_main, BatchSize, Criterion, Throughput};
|
||||||
|
use managarr_tree_widget::{Tree, TreeItem, TreeState};
|
||||||
use ratatui::buffer::Buffer;
|
use ratatui::buffer::Buffer;
|
||||||
use ratatui::layout::Rect;
|
use ratatui::layout::Rect;
|
||||||
use ratatui::widgets::StatefulWidget;
|
use ratatui::widgets::StatefulWidget;
|
||||||
use managarr_tree_widget::{Tree, TreeItem, TreeState};
|
|
||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
fn example_items() -> Vec<TreeItem<&'static str>> {
|
fn example_items() -> Vec<TreeItem<&'static str>> {
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf( "Alfa"),
|
TreeItem::new_leaf("Alfa"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"Bravo",
|
"Bravo",
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf( "Charlie"),
|
TreeItem::new_leaf("Charlie"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"Delta",
|
"Delta",
|
||||||
vec![
|
vec![TreeItem::new_leaf("Echo"), TreeItem::new_leaf("Foxtrot")],
|
||||||
TreeItem::new_leaf( "Echo"),
|
|
||||||
TreeItem::new_leaf( "Foxtrot"),
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
TreeItem::new_leaf( "Golf"),
|
TreeItem::new_leaf("Golf"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
TreeItem::new_leaf( "Hotel"),
|
TreeItem::new_leaf("Hotel"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"India",
|
"India",
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf( "Juliet"),
|
TreeItem::new_leaf("Juliet"),
|
||||||
TreeItem::new_leaf("Kilo"),
|
TreeItem::new_leaf("Kilo"),
|
||||||
TreeItem::new_leaf("Lima"),
|
TreeItem::new_leaf("Lima"),
|
||||||
TreeItem::new_leaf("Mike"),
|
TreeItem::new_leaf("Mike"),
|
||||||
@@ -38,28 +35,28 @@ fn example_items() -> Vec<TreeItem<&'static str>> {
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
TreeItem::new_leaf( "Oscar"),
|
TreeItem::new_leaf("Oscar"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"Papa",
|
"Papa",
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf( "Quebec"),
|
TreeItem::new_leaf("Quebec"),
|
||||||
TreeItem::new_leaf( "Romeo"),
|
TreeItem::new_leaf("Romeo"),
|
||||||
TreeItem::new_leaf( "Sierra"),
|
TreeItem::new_leaf("Sierra"),
|
||||||
TreeItem::new_leaf( "Tango"),
|
TreeItem::new_leaf("Tango"),
|
||||||
TreeItem::new_leaf( "Uniform"),
|
TreeItem::new_leaf("Uniform"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"Victor",
|
"Victor",
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf("Whiskey"),
|
TreeItem::new_leaf("Whiskey"),
|
||||||
TreeItem::new_leaf ("Xray"),
|
TreeItem::new_leaf("Xray"),
|
||||||
TreeItem::new_leaf( "Yankee"),
|
TreeItem::new_leaf("Yankee"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
TreeItem::new_leaf( "Zulu"),
|
TreeItem::new_leaf("Zulu"),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+20
-23
@@ -1,5 +1,6 @@
|
|||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
||||||
|
use managarr_tree_widget::{Tree, TreeItem, TreeState};
|
||||||
use ratatui::backend::{Backend, CrosstermBackend};
|
use ratatui::backend::{Backend, CrosstermBackend};
|
||||||
use ratatui::crossterm::event::{Event, KeyCode, KeyModifiers, MouseEventKind};
|
use ratatui::crossterm::event::{Event, KeyCode, KeyModifiers, MouseEventKind};
|
||||||
use ratatui::layout::{Position, Rect};
|
use ratatui::layout::{Position, Rect};
|
||||||
@@ -7,7 +8,6 @@ use ratatui::style::{Color, Modifier, Style};
|
|||||||
use ratatui::text::Span;
|
use ratatui::text::Span;
|
||||||
use ratatui::widgets::{Block, Scrollbar, ScrollbarOrientation};
|
use ratatui::widgets::{Block, Scrollbar, ScrollbarOrientation};
|
||||||
use ratatui::{crossterm, Frame, Terminal};
|
use ratatui::{crossterm, Frame, Terminal};
|
||||||
use managarr_tree_widget::{Tree, TreeItem, TreeState};
|
|
||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
struct App {
|
struct App {
|
||||||
@@ -20,20 +20,17 @@ impl App {
|
|||||||
Self {
|
Self {
|
||||||
state: TreeState::default(),
|
state: TreeState::default(),
|
||||||
items: vec![
|
items: vec![
|
||||||
TreeItem::new_leaf( "Alfa"),
|
TreeItem::new_leaf("Alfa"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"Bravo",
|
"Bravo",
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf( "Charlie"),
|
TreeItem::new_leaf("Charlie"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"Delta",
|
"Delta",
|
||||||
vec![
|
vec![TreeItem::new_leaf("Echo"), TreeItem::new_leaf("Foxtrot")],
|
||||||
TreeItem::new_leaf("Echo"),
|
|
||||||
TreeItem::new_leaf( "Foxtrot"),
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
TreeItem::new_leaf( "Golf"),
|
TreeItem::new_leaf("Golf"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
@@ -41,36 +38,36 @@ impl App {
|
|||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"India",
|
"India",
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf( "Juliet"),
|
TreeItem::new_leaf("Juliet"),
|
||||||
TreeItem::new_leaf( "Kilo"),
|
TreeItem::new_leaf("Kilo"),
|
||||||
TreeItem::new_leaf( "Lima"),
|
TreeItem::new_leaf("Lima"),
|
||||||
TreeItem::new_leaf( "Mike"),
|
TreeItem::new_leaf("Mike"),
|
||||||
TreeItem::new_leaf( "November"),
|
TreeItem::new_leaf("November"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
TreeItem::new_leaf( "Oscar"),
|
TreeItem::new_leaf("Oscar"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"Papa",
|
"Papa",
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf( "Quebec"),
|
TreeItem::new_leaf("Quebec"),
|
||||||
TreeItem::new_leaf( "Romeo"),
|
TreeItem::new_leaf("Romeo"),
|
||||||
TreeItem::new_leaf( "Sierra"),
|
TreeItem::new_leaf("Sierra"),
|
||||||
TreeItem::new_leaf( "Tango"),
|
TreeItem::new_leaf("Tango"),
|
||||||
TreeItem::new_leaf( "Uniform"),
|
TreeItem::new_leaf("Uniform"),
|
||||||
TreeItem::new(
|
TreeItem::new(
|
||||||
"Victor",
|
"Victor",
|
||||||
vec![
|
vec![
|
||||||
TreeItem::new_leaf( "Whiskey"),
|
TreeItem::new_leaf("Whiskey"),
|
||||||
TreeItem::new_leaf( "Xray"),
|
TreeItem::new_leaf("Xray"),
|
||||||
TreeItem::new_leaf( "Yankee"),
|
TreeItem::new_leaf("Yankee"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
TreeItem::new_leaf( "Zulu"),
|
TreeItem::new_leaf("Zulu"),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-4
@@ -1,8 +1,8 @@
|
|||||||
|
use crate::tree_item::TreeItem;
|
||||||
|
use ratatui::text::ToText;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
use std::hash::Hash;
|
use std::hash::Hash;
|
||||||
use crate::tree_item::TreeItem;
|
|
||||||
use ratatui::text::ToText;
|
|
||||||
|
|
||||||
/// A flattened item of all visible [`TreeItem`]s.
|
/// A flattened item of all visible [`TreeItem`]s.
|
||||||
///
|
///
|
||||||
@@ -125,7 +125,17 @@ fn flatten_one_is_open() {
|
|||||||
hasher.finish()
|
hasher.finish()
|
||||||
};
|
};
|
||||||
open.insert(vec![hash("Bravo")]);
|
open.insert(vec![hash("Bravo")]);
|
||||||
flatten_works(&open, &[hash("Alfa"), hash("Bravo"), hash("Charlie"), hash("Delta"), hash("Golf"), hash("Hotel")]);
|
flatten_works(
|
||||||
|
&open,
|
||||||
|
&[
|
||||||
|
hash("Alfa"),
|
||||||
|
hash("Bravo"),
|
||||||
|
hash("Charlie"),
|
||||||
|
hash("Delta"),
|
||||||
|
hash("Golf"),
|
||||||
|
hash("Hotel"),
|
||||||
|
],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -139,5 +149,17 @@ fn flatten_all_open() {
|
|||||||
};
|
};
|
||||||
open.insert(vec![hash("Bravo")]);
|
open.insert(vec![hash("Bravo")]);
|
||||||
open.insert(vec![hash("Bravo"), hash("Delta")]);
|
open.insert(vec![hash("Bravo"), hash("Delta")]);
|
||||||
flatten_works(&open, &[hash("Alfa"), hash("Bravo"), hash("Charlie"), hash("Delta"), hash("Echo"), hash("Foxtrot"), hash("Golf"), hash("Hotel")]);
|
flatten_works(
|
||||||
|
&open,
|
||||||
|
&[
|
||||||
|
hash("Alfa"),
|
||||||
|
hash("Bravo"),
|
||||||
|
hash("Charlie"),
|
||||||
|
hash("Delta"),
|
||||||
|
hash("Echo"),
|
||||||
|
hash("Foxtrot"),
|
||||||
|
hash("Golf"),
|
||||||
|
hash("Hotel"),
|
||||||
|
],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -5,14 +5,14 @@ Tree widget [`Tree`] is generated with [`TreeItem`]s (which itself can contain [
|
|||||||
The user interaction state (like the current selection) is stored in the [`TreeState`].
|
The user interaction state (like the current selection) is stored in the [`TreeState`].
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use std::collections::HashSet;
|
|
||||||
use std::fmt::Display;
|
|
||||||
use std::hash::Hash;
|
|
||||||
use ratatui::buffer::Buffer;
|
use ratatui::buffer::Buffer;
|
||||||
use ratatui::layout::Rect;
|
use ratatui::layout::Rect;
|
||||||
use ratatui::style::Style;
|
use ratatui::style::Style;
|
||||||
use ratatui::text::ToText;
|
use ratatui::text::ToText;
|
||||||
use ratatui::widgets::{Block, Scrollbar, ScrollbarState, StatefulWidget, Widget};
|
use ratatui::widgets::{Block, Scrollbar, ScrollbarState, StatefulWidget, Widget};
|
||||||
|
use std::collections::HashSet;
|
||||||
|
use std::fmt::Display;
|
||||||
|
use std::hash::Hash;
|
||||||
use unicode_width::UnicodeWidthStr;
|
use unicode_width::UnicodeWidthStr;
|
||||||
|
|
||||||
pub use crate::flatten::Flattened;
|
pub use crate::flatten::Flattened;
|
||||||
@@ -346,8 +346,8 @@ where
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod render_tests {
|
mod render_tests {
|
||||||
use std::hash::{DefaultHasher, Hasher};
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
use std::hash::{DefaultHasher, Hasher};
|
||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
|
|||||||
+6
-9
@@ -1,7 +1,7 @@
|
|||||||
|
use ratatui::text::ToText;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
use std::hash::{DefaultHasher, Hash, Hasher};
|
use std::hash::{DefaultHasher, Hash, Hasher};
|
||||||
use ratatui::text::ToText;
|
|
||||||
|
|
||||||
/// One item inside a [`Tree`](crate::Tree).
|
/// One item inside a [`Tree`](crate::Tree).
|
||||||
///
|
///
|
||||||
@@ -80,7 +80,7 @@ where
|
|||||||
pub fn new_leaf(content: T) -> Self {
|
pub fn new_leaf(content: T) -> Self {
|
||||||
let mut hasher = DefaultHasher::new();
|
let mut hasher = DefaultHasher::new();
|
||||||
content.hash(&mut hasher);
|
content.hash(&mut hasher);
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
identifier: hasher.finish(),
|
identifier: hasher.finish(),
|
||||||
content,
|
content,
|
||||||
@@ -159,17 +159,14 @@ impl TreeItem<&'static str> {
|
|||||||
Self::new_leaf("Charlie"),
|
Self::new_leaf("Charlie"),
|
||||||
Self::new(
|
Self::new(
|
||||||
"Delta",
|
"Delta",
|
||||||
vec![
|
vec![Self::new_leaf("Echo"), Self::new_leaf("Foxtrot")],
|
||||||
Self::new_leaf("Echo"),
|
|
||||||
Self::new_leaf( "Foxtrot"),
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
Self::new_leaf("Golf"),
|
Self::new_leaf("Golf"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
.expect("all item identifiers are unique"),
|
.expect("all item identifiers are unique"),
|
||||||
Self::new_leaf( "Hotel"),
|
Self::new_leaf("Hotel"),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -177,7 +174,7 @@ impl TreeItem<&'static str> {
|
|||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "duplicate identifiers"]
|
#[should_panic = "duplicate identifiers"]
|
||||||
fn tree_item_new_errors_with_duplicate_identifiers() {
|
fn tree_item_new_errors_with_duplicate_identifiers() {
|
||||||
let item = TreeItem::new_leaf( "text");
|
let item = TreeItem::new_leaf("text");
|
||||||
let another = item.clone();
|
let another = item.clone();
|
||||||
TreeItem::new("Root", vec![item, another]).unwrap();
|
TreeItem::new("Root", vec![item, another]).unwrap();
|
||||||
}
|
}
|
||||||
@@ -187,6 +184,6 @@ fn tree_item_new_errors_with_duplicate_identifiers() {
|
|||||||
fn tree_item_add_child_errors_with_duplicate_identifiers() {
|
fn tree_item_add_child_errors_with_duplicate_identifiers() {
|
||||||
let item = TreeItem::new_leaf("text");
|
let item = TreeItem::new_leaf("text");
|
||||||
let another = item.clone();
|
let another = item.clone();
|
||||||
let mut root = TreeItem::new( "Root", vec![item]).unwrap();
|
let mut root = TreeItem::new("Root", vec![item]).unwrap();
|
||||||
root.add_child(another).unwrap();
|
root.add_child(another).unwrap();
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-6
@@ -1,8 +1,8 @@
|
|||||||
|
use ratatui::layout::{Position, Rect};
|
||||||
|
use ratatui::text::ToText;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
use std::hash::Hash;
|
use std::hash::Hash;
|
||||||
use ratatui::layout::{Position, Rect};
|
|
||||||
use ratatui::text::ToText;
|
|
||||||
|
|
||||||
use crate::flatten::{flatten, Flattened};
|
use crate::flatten::{flatten, Flattened};
|
||||||
use crate::tree_item::TreeItem;
|
use crate::tree_item::TreeItem;
|
||||||
@@ -56,10 +56,7 @@ impl TreeState {
|
|||||||
|
|
||||||
/// Get a flat list of all currently viewable (including by scrolling) [`TreeItem`]s with this `TreeState`.
|
/// Get a flat list of all currently viewable (including by scrolling) [`TreeItem`]s with this `TreeState`.
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn flatten<'a, T>(
|
pub fn flatten<'a, T>(&self, items: &'a [TreeItem<T>]) -> Vec<Flattened<'a, T>>
|
||||||
&self,
|
|
||||||
items: &'a [TreeItem<T>],
|
|
||||||
) -> Vec<Flattened<'a, T>>
|
|
||||||
where
|
where
|
||||||
T: ToText + Clone + Default + Display + Hash,
|
T: ToText + Clone + Default + Display + Hash,
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user