pub async fn compile_iter(
state: &mut CompileState,
source: &mut String,
lang: Language,
iname: impl AsRef<str>,
input: &mut impl BufRead,
oname: impl AsRef<str>,
output: &mut impl Write,
pretty: bool,
compact: bool,
packages_loc: &IndexLocation,
data_loc: &IndexLocation,
raw_assets: bool,
) -> Result<(), CompileError>Expand description
Compiles a snippet of BraneScript statefully.
§Arguments
state: The CompileState that allows us to make repeated calls that are sensible.lang: The language to compile.iname: Some name useful for the reader to identify where is being read from.input: The reader to read the snippet from.source: The (automatically updated) total source, used for debugging.oname: Some name useful for the user to identify where is being written to.output: The Writer to write the output to.pretty: If given, does not serialize to JSON but withbrane_ast::traversals::print::ast.compact: If given, serializes with as little whitespace as possible. Decreases the resulting size greatly, but also readability.packages_loc: Where to get the package index from. Implemented as an IndexLocation so it may be both local or remote.data_loc: Where to get the data index from. Implemented as an IndexLocation so it may be both local or remote.raw_assets: If true, don’t read the package and data “canonically” but instead read them for testing purposes.
§Returns
Nothing directly, but does write the result to output and appends the input snippet to source.
§Errors
This function errors if the input is not valid BraneScript or an IO error occurred trying to read from / write to the input / output.