darklua_core/frontend/
mod.rs

1mod configuration;
2mod error;
3mod options;
4mod resources;
5mod utils;
6mod work_cache;
7mod work_item;
8mod worker;
9mod worker_tree;
10
11pub use configuration::{BundleConfiguration, Configuration, GeneratorParameters};
12pub use error::{DarkluaError, DarkluaResult};
13pub use options::Options;
14pub use resources::Resources;
15use serde::Serialize;
16use work_item::WorkItem;
17use worker::Worker;
18pub use worker_tree::WorkerTree;
19
20use crate::{
21    generator::{DenseLuaGenerator, LuaGenerator},
22    nodes::{Block, ReturnStatement},
23    process::to_expression,
24    utils::normalize_path,
25};
26
27/// Convert serializable data into a Lua module
28pub fn convert_data(value: impl Serialize) -> Result<String, DarkluaError> {
29    let expression = to_expression(&value).map_err(DarkluaError::from)?;
30
31    let block = Block::default()
32        .with_last_statement(ReturnStatement::default().with_expression(expression));
33
34    let mut generator = DenseLuaGenerator::default();
35    generator.write_block(&block);
36    Ok(generator.into_string())
37}
38
39pub fn process(resources: &Resources, options: Options) -> DarkluaResult<WorkerTree> {
40    let mut worker_tree = WorkerTree::default();
41
42    worker_tree.collect_work(resources, &options)?;
43    worker_tree.process(resources, options)?;
44
45    Ok(worker_tree)
46}