gossamer/weak_set

Types

A JS WeakSet whose values are weakly held — entries are eligible for GC once the value has no other references. Mutable.

Values must be objects (records, lists, tuples) or non-registered symbols (gossamer/symbol.new, not gossamer/symbol.for); add and from_list return an error otherwise. Has no size, iteration, or clear (those would expose GC timing).

Values are matched by JS reference identity, not value equality — two equal-by-value tuples constructed separately are distinct values.

See WeakSet on MDN.

pub type WeakSet(value)

Values

pub fn add(
  to set: WeakSet(value),
  value value: value,
) -> Result(WeakSet(value), js_error.JsError)

Mutates the set. Returns an error if value is invalid.

pub fn delete(
  from set: WeakSet(value),
  value value: value,
) -> WeakSet(value)

Mutates the set.

pub fn from_list(
  values: List(value),
) -> Result(WeakSet(value), js_error.JsError)

Returns an error if any value in values is invalid.

pub fn has(in set: WeakSet(value), value value: value) -> Bool
pub fn new() -> WeakSet(value)
Search Document