Improved inspect
This commit is contained in:
@@ -47,15 +47,18 @@ pub struct MarketItem {
|
|||||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||||
pub enum InspectTarget {
|
pub enum InspectTarget {
|
||||||
None,
|
None,
|
||||||
Some(Vec<InspectItem>),
|
Some(Vec<InspectRow>),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||||
|
pub struct InspectRow(pub InspectItem, pub InspectItem, pub InspectItem);
|
||||||
|
|
||||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||||
pub enum InspectItem {
|
pub enum InspectItem {
|
||||||
String(String),
|
Name(String),
|
||||||
Symbol(String),
|
Symbol(String),
|
||||||
USD(f64),
|
USD(Decimal),
|
||||||
F64(f64),
|
F64(Decimal),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||||
|
|||||||
@@ -10,15 +10,24 @@ impl Formatted for InspectTarget {
|
|||||||
match self {
|
match self {
|
||||||
Self::None => vec!["\x1b[2mnothing to inspect\x1b[0m".to_string()],
|
Self::None => vec!["\x1b[2mnothing to inspect\x1b[0m".to_string()],
|
||||||
|
|
||||||
Self::Some(items) => items
|
Self::Some(items) => {
|
||||||
.iter()
|
let items = items
|
||||||
.map(|item| match item {
|
.iter()
|
||||||
InspectItem::F64(v) => format_f64(*v),
|
.map(|row| {
|
||||||
InspectItem::USD(v) => format!("${}", format_f64(*v)),
|
(
|
||||||
InspectItem::Symbol(v) => format!("\x1b[35m{v}\x1b[0m"),
|
format_inspect_item(&row.0),
|
||||||
InspectItem::String(v) => v.clone(),
|
format_inspect_item(&row.1),
|
||||||
})
|
format_inspect_item(&row.2),
|
||||||
.collect(),
|
)
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
items
|
||||||
|
.iter()
|
||||||
|
.map(|(a, b, c)| Triple(a, b, c))
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.get_formatted()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -226,6 +235,15 @@ pub fn apply_padding(mut items: Vec<String>) -> Vec<String> {
|
|||||||
items
|
items
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn format_inspect_item(item: &InspectItem) -> String {
|
||||||
|
match item {
|
||||||
|
InspectItem::F64(v) => format_f64(v.as_f64()),
|
||||||
|
InspectItem::USD(v) => format!("${}", format_f64(v.as_f64())),
|
||||||
|
InspectItem::Symbol(v) => format!("\x1b[35m{v}\x1b[0m"),
|
||||||
|
InspectItem::Name(v) => v.clone(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn format_symbol(value: &str) -> String {
|
pub fn format_symbol(value: &str) -> String {
|
||||||
format!("\x1b[35m{value}\x1b[0m")
|
format!("\x1b[35m{value}\x1b[0m")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user