benedict

Types

pub opaque type Bend(key, value)
pub opaque type Object(key, value)

Values

pub fn contains(bend: Bend(k, v), key: k) -> Bool
pub fn get(bend: Bend(k, v), key: k) -> Result(v, Nil)
pub fn get_after(bend: Bend(k, v), mark key: k) -> Result(v, Nil)
pub fn get_before(bend: Bend(k, v), key: k) -> Result(v, Nil)
pub fn new() -> Bend(key, value)
pub fn pop(
  bend: Bend(k, v),
  key: k,
) -> Result(#(Bend(k, v), v), Nil)
pub fn pop_after(
  bend: Bend(k, v),
  mark key: k,
) -> Result(#(Bend(k, v), k, v), Nil)
pub fn pop_before(
  bend: Bend(k, v),
  mark key: k,
) -> Result(#(Bend(k, v), k, v), Nil)
pub fn put_after(
  bend: Bend(k, v),
  key: k,
  val: v,
  mark prev: k,
) -> Result(Bend(k, v), Nil)

Put the given key-value pair after the specified mark (also a key). Any previously existing value for the same key is deleted in the process.

pub fn put_aside(bend: Bend(k, v), key: k, val: v) -> Bend(k, v)
pub fn put_before(
  bend: Bend(k, v),
  key: k,
  val: v,
  mark next: k,
) -> Result(Bend(k, v), Nil)

Put the given key-value pair before the specified mark (also a key). Any previously existing value for the same key is deleted in the process.

pub fn ring_from_list(keyvals: List(#(k, v))) -> Bend(k, v)
pub fn ring_to_list(
  bend: Bend(k, v),
  head key: k,
) -> Result(List(#(k, v)), Nil)
pub fn size(bend: Bend(k, v)) -> Int
pub fn to_list(bend: Bend(k, v)) -> List(#(k, v))
Search Document