algosul_core/
codegen.rs

1//! # Example
2//! ```
3//! use proc_macro2::{Ident, Span};
4//! use syn::{parse_quote, File, ItemMod};
5//! use algosul_core::codegen::file::FileExt;
6//! use algosul_core::codegen::ident::StrExt;
7//! use algosul_core::codegen::module::ModuleExt;
8//! let mut file: File = parse_quote!(
9//!     #![allow(non_upper_case_globals)]
10//! );
11//! file.add_mod({
12//!     let mut module: ItemMod = parse_quote!(
13//!         pub mod lang;
14//!     );
15//!     module.add_include_str_by_glob("rc/lang/*.toml", |path| {
16//!         Ident::new(
17//!             path.file_stem()
18//!                 .unwrap()
19//!                 .to_valid_ident()
20//!                 .to_str()
21//!                 .unwrap(),
22//!             Span::call_site(),
23//!         )
24//!     }).unwrap();
25//!     module
26//! });
27//! ```
28pub mod file;
29pub mod filter;
30pub mod fs;
31pub mod ident;
32pub mod module;
33pub mod tokens;