Current section
Files
Jump to
Current section
Files
doc/AshGleam.GleamBridge.md
# `AshGleam.GleamBridge`
Standalone DSL for bidirectional Elixir↔Gleam function bridging.
Exposes Elixir functions to Gleam (`expose`) and makes Gleam functions
callable from Elixir (`consume`).
defmodule MyApp.Math do
use AshGleam.GleamBridge
gleam do
consume do
function :add_in_gleam, :integer do
argument :a, :integer, allow_nil?: false
argument :b, :integer, allow_nil?: false
run &:gleam_module.add/2
end
end
expose do
function :add_in_elixir, :integer do
argument :a, :integer, allow_nil?: false
argument :b, :integer, allow_nil?: false
run fn a, b -> {:ok, a + b} end
end
end
end
end
### Options
* `:extensions` (list of module that adopts `Spark.Dsl.Extension`) - A list of DSL extensions to add to the `Spark.Dsl`
* `:otp_app` (`t:atom/0`) - The otp_app to use for any application configurable options
* `:fragments` (list of `t:module/0`) - Fragments to include in the `Spark.Dsl`. See the fragments guide for more.
---
*Consult [api-reference.md](api-reference.md) for complete listing*