1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use std::rc::Rc;
use super::StringContainer;
use super::StringTrait;
pub enum WriteItem<T = String> where T : StringTrait {
String(Rc<StringContainer<T>>),
Indent(u8),
NewLine,
Tab,
Space,
}
impl<TString> Clone for WriteItem<TString> where TString : StringTrait {
fn clone(&self) -> WriteItem<TString> {
match self {
WriteItem::Indent(times) => WriteItem::Indent(*times),
WriteItem::NewLine => WriteItem::NewLine,
WriteItem::Tab => WriteItem::Tab,
WriteItem::Space => WriteItem::Space,
WriteItem::String(text) => WriteItem::String(text.clone()),
}
}
}