1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
use crate::ast::Ast;
use std::ops::Range;
pub struct AstMeta {
pub range: Range<usize>,
pub item: Ast,
}
impl AstMeta {
pub fn new(range: Range<usize>, item: Ast) -> Self {
Self {
range,
item
}
}
pub fn boxed(range: Range<usize>, item: Ast) -> Box<Self> {
Box::new(
Self {
range,
item
}
)
}
pub fn as_box(self) -> Box<Self> {
Box::new(self)
}
}
impl std::fmt::Debug for AstMeta {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
self.item.fmt(f)
}
}