pub trait MutVisitor {
Show 15 methods
// Provided methods
fn visit_block(&mut self, block: &mut Block) { ... }
fn visit_attr(&mut self, attr: &mut Attr) { ... }
fn visit_inline(&mut self, inline: &mut Inline) { ... }
fn visit_meta(&mut self, _key: &str, meta: &mut MetaValue) { ... }
fn visit_vec_block(&mut self, vec_block: &mut Vec<Block>) { ... }
fn visit_vec_inline(&mut self, vec_inline: &mut Vec<Inline>) { ... }
fn visit_rows(&mut self, rows: &mut Vec<Row>) { ... }
fn walk_meta(&mut self, meta: &mut MetaValue) { ... }
fn walk_pandoc(&mut self, pandoc: &mut Pandoc) { ... }
fn walk_block(&mut self, block: &mut Block) { ... }
fn walk_attr(&mut self, _attr: &mut Attr) { ... }
fn walk_inline(&mut self, inline: &mut Inline) { ... }
fn walk_rows(&mut self, rows: &mut Vec<Row>) { ... }
fn walk_vec_block(&mut self, vec_block: &mut Vec<Block>) { ... }
fn walk_vec_inline(&mut self, vec_inline: &mut Vec<Inline>) { ... }
}
18
19
20
21
22
23
24
25
26
fn main() {
let mut s = String::new();
io::stdin().read_to_string(&mut s).unwrap();
let s = pandoc_ast::filter(s, |mut pandoc| {
MyVisitor.walk_pandoc(&mut pandoc);
pandoc
});
io::stdout().write(s.as_bytes()).unwrap();
}
More examples
Hide additional examples
18
19
20
21
22
23
24
25
26
fn main() {
let mut s = String::new();
io::stdin().read_to_string(&mut s).unwrap();
let s = pandoc_ast::filter(s, |mut pandoc| {
MyVisitor.walk_pandoc(&mut pandoc);
pandoc
});
io::stdout().write(s.as_bytes()).unwrap();
}
fn visit_inline(&mut self, inline: &mut Inline) {
if let Inline::Str(ref mut s) = *inline {
*s = s.to_uppercase();
return;
}
self.walk_inline(inline);
}
fn visit_vec_inline(&mut self, vec_inline: &mut Vec<Inline>) {
vec_inline.retain(|inline| match inline {
&Inline::Note(_) => false,
_ => true,
});
self.walk_vec_inline(vec_inline);
}