Skip to main content

layer_tl_gen/
lib.rs

1//! Build-time code generator that transforms a parsed TL schema into Rust source files.
2//!
3//! Intended to be used from a `build.rs` script.
4//!
5//! # Usage
6//!
7//! ```no_run
8//! // build.rs
9//! use layer_tl_gen::{Config, Outputs, generate};
10//! use layer_tl_parser::parse_tl_file;
11//! use std::fs;
12//!
13//! fn main() {
14//!     let schema = fs::read_to_string("tl/api.tl").unwrap();
15//!     let defs: Vec<_> = parse_tl_file(&schema)
16//!         .filter_map(|r| r.ok())
17//!         .collect();
18//!
19//!     let out = std::env::var("OUT_DIR").unwrap();
20//!     let mut outputs = Outputs::from_dir(&out).unwrap();
21//!     generate(&defs, &Config::default(), &mut outputs).unwrap();
22//! }
23//! ```
24
25#![deny(unsafe_code)]
26#![warn(missing_docs)]
27
28mod grouper;
29mod metadata;
30mod namegen;
31pub mod codegen;
32
33pub use codegen::{generate, Config, Outputs};