Skip to main content

lua_assembler/formats/lua/writer/
mod.rs

1use gaia_types::writer::TextWriter;
2use oak_core::source::ToSource;
3use oak_lua::ast::LuaRoot;
4use std::fmt::Write;
5
6#[derive(Debug)]
7pub struct LuaWriter<W> {
8    writer: TextWriter<W>,
9}
10
11impl<W: Write> LuaWriter<W> {
12    pub fn new(writer: TextWriter<W>) -> Self {
13        Self { writer }
14    }
15
16    pub fn write_ast(&mut self, ast: &LuaRoot) -> Result<(), std::fmt::Error> {
17        let source = ast.to_source_string();
18        self.writer.write_line(&source)?;
19        Ok(())
20    }
21
22    pub fn finish(self) -> W {
23        self.writer.finish()
24    }
25}