Packages

Bindings for Erlang's ETS tables. Forked and updated from gts.

Current section

Files

Jump to
carpenter src carpenter table.gleam
Raw

src/carpenter/table.gleam

//// Generic operations on every table type.
import gleam/erlang/atom
import gleam/erlang/process
import carpenter/internal/ets_bindings
pub opaque type Table(k, v) {
Table(name: atom.Atom)
}
pub fn new(name: atom.Atom) {
Table(name)
}
pub fn name(table: Table(k, v)) -> atom.Atom {
table.name
}
/// Deletes the entire table.
pub fn drop(table: Table(k, v)) {
ets_bindings.drop(table.name)
}
/// Give the table to another process.
pub fn give_away(table: Table(k, v), pid: process.Pid, gift_data: any) -> Nil {
ets_bindings.give_away(table.name, pid, gift_data)
}