Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-utils/src/fmt.rs
6939 views
1
#[macro_export]
2
macro_rules! format_list_container {
3
($e:expr, $start:tt, $end:tt) => {{
4
use std::fmt::Write;
5
let mut out = String::new();
6
out.push($start);
7
let mut iter = $e.into_iter();
8
let mut next = iter.next();
9
10
loop {
11
if let Some(val) = next {
12
write!(out, "{val}").unwrap();
13
};
14
next = iter.next();
15
if next.is_some() {
16
out.push_str(", ")
17
} else {
18
break;
19
}
20
}
21
out.push($end);
22
out
23
};};
24
}
25
26
#[macro_export]
27
macro_rules! format_list {
28
($e:expr) => {{
29
use polars_utils::format_list_container;
30
format_list_container!($e, '[', ']')
31
};};
32
}
33
34
#[macro_export]
35
macro_rules! format_tuple {
36
($e:expr) => {{
37
use polars_utils::format_list_container;
38
format_list_container!($e, '(', ')')
39
};};
40
}
41
42
#[macro_export]
43
macro_rules! format_list_container_truncated {
44
($e:expr, $start:tt, $end:tt, $max:expr, $quote:expr) => {{
45
use std::fmt::Write;
46
let mut out = String::new();
47
out.push($start);
48
let mut iter = $e.into_iter();
49
let mut next = iter.next();
50
51
let mut count = 0;
52
loop {
53
if $max == count {
54
write!(out, "...").unwrap();
55
break;
56
}
57
count += 1;
58
59
if let Some(val) = next {
60
write!(out, "{}{}{}", $quote, val, $quote).unwrap();
61
};
62
next = iter.next();
63
if next.is_some() {
64
out.push_str(", ")
65
} else {
66
break;
67
}
68
}
69
out.push($end);
70
out
71
};};
72
}
73
74
#[macro_export]
75
macro_rules! format_list_truncated {
76
($e:expr, $max:expr) => {{
77
use polars_utils::format_list_container_truncated;
78
format_list_container_truncated!($e, '[', ']', $max, "")
79
};};
80
($e:expr, $max:expr, $quote:expr) => {{
81
use polars_utils::format_list_container_truncated;
82
format_list_container_truncated!($e, '[', ']', $max, $quote)
83
};};
84
}
85
86