Borrow syntax tree idents to make Block copyable
diff --git a/gen/src/out.rs b/gen/src/out.rs
index 606a586..6867a76 100644
--- a/gen/src/out.rs
+++ b/gen/src/out.rs
@@ -10,16 +10,16 @@
pub header: bool,
pub opt: &'a Opt,
pub types: &'a Types<'a>,
- pub include: Includes,
- pub builtin: Builtins,
- content: RefCell<Content>,
+ pub include: Includes<'a>,
+ pub builtin: Builtins<'a>,
+ content: RefCell<Content<'a>>,
}
#[derive(Default)]
-pub struct Content {
+pub struct Content<'a> {
bytes: String,
section_pending: bool,
- blocks_pending: Vec<Block>,
+ blocks_pending: Vec<Block<'a>>,
}
impl<'a> OutFile<'a> {
@@ -39,11 +39,11 @@
self.content.get_mut().next_section();
}
- pub fn begin_block(&mut self, block: Block) {
+ pub fn begin_block(&mut self, block: Block<'a>) {
self.content.get_mut().begin_block(block);
}
- pub fn end_block(&mut self, block: Block) {
+ pub fn end_block(&mut self, block: Block<'a>) {
self.content.get_mut().end_block(block);
}
@@ -74,20 +74,20 @@
}
}
-impl Write for Content {
+impl<'a> Write for Content<'a> {
fn write_str(&mut self, s: &str) -> fmt::Result {
self.write(s);
Ok(())
}
}
-impl PartialEq for Content {
+impl<'a> PartialEq for Content<'a> {
fn eq(&self, _other: &Content) -> bool {
true
}
}
-impl Content {
+impl<'a> Content<'a> {
fn new() -> Self {
Content::default()
}
@@ -96,11 +96,11 @@
self.section_pending = true;
}
- pub fn begin_block(&mut self, block: Block) {
+ pub fn begin_block(&mut self, block: Block<'a>) {
self.blocks_pending.push(block);
}
- pub fn end_block(&mut self, block: Block) {
+ pub fn end_block(&mut self, block: Block<'a>) {
if self.blocks_pending.pop().is_none() {
Block::write_end(&block, &mut self.bytes);
self.section_pending = true;