trick
trick is a code generation library for Gleam, based on
elm-codegen.
It’s designed to assist any library or application which needs to generate Gleam code. The generated code is fully type-checked, so you can be sure that it will compile correctly once generated.
trick is currently in development and not yet published on Hex. You can add
it as a git dependency in your gleam.toml:
[dependencies]
trick = { git = "https://github.com/GearsDatapacks/trick.git", ref = "main" }
Then, start generating code:
import trick
import simplifile
pub fn main() {
let assert Ok(code) = trick.to_string({
use pi <- trick.constant("pi", trick.Private, trick.float(3.14))
use circle_area <- trick.function("circle_area", trick.Public, {
use radius <- trick.parameter("radius", trick.float_type())
trick.function_body({
use radius_squared <- trick.variable(
"radius_squared",
trick.multiply_float(radius, radius),
)
trick.expression(trick.multiply_float(radius_squared, pi))
})
})
trick.end_module()
})
let assert Ok(Nil) = simplifile.write("out.gleam", code)
}
Until publication on Hex, documentation can be found at https://gearsco.de/trick.