Я хочу, чтобы fmt!("%?", obj)
вызывал метод на моем объекте для форматирования результата. Я попытался реализовать черты ToStr
и Repr
, но ни один из них не работал. Вот мой тестовый код:ржавчина: определение ToStr для fmt
pub struct Element {
name: ~str,
}
impl ToStr for Element {
pub fn to_str(&self) -> ~str {
fmt!("<%s>", self.name)
}
}
fn main() {
let e = Element{name: ~"root"};
io::println(fmt!("e: %?", e));
}
Он печатает:
e: {name: ~"root"}
Я бы ожидать, что печатать:
e: <root>
Я использую Rust 0.6.