SkySpark by SkyFoundry

const mixin haystack::Dict

haystack::Dict

@Js

Dict is a map of name/value pairs which is consistently models Rows, grid meta-data, and name/value object literals. Dict is characterized by:

Also see Etc.emptyDict, Etc.makeDict.

dis

virtual Str? dis(Str? name := null, Str? def := "")

Get display string for dict or the given tag. If name is null, then return display text for the entire dict using Etc.dictToDis. If name is non-null then format the tag value using its appropiate toLocale method. If name is not defined by this dict, then return def.

each

abstract Void each(|Obj?,Str| f)

Iterate through the name/value pairs

eachWhile

abstract Obj? eachWhile(|Obj?,Str->Obj?| f)

Iterate through the name/value pairs until the given function returns non-null, then break the iteration and return resulting object. Return null if function returns null for every name/value pair.

get

@Operator
abstract Obj? get(Str name, Obj? def := null)

Get the value for the given name or def is not mapped

has

abstract Bool has(Str name)

Return true if the given name is mapped to a non-null value.

id

virtual Ref id()

Get the id tag as a Ref or raise CastErr/UnknownNameErr

isEmpty

abstract Bool isEmpty()

Return if the there are no name/value pairs

missing

abstract Bool missing(Str name)

Return true if the given name is not mapped to a non-null value.

toStr

virtual override Str toStr()

Return string for debugging only

trap

abstract override Obj? trap(Str name, Obj?[]? args := null)

Get the value mapped by the given name. If it is not mapped to a non-null value, then throw an UnknownNameErr.