finos/morphir-ir/common does not have a README file

    NameError

    pub(all) suberror NameError {
    InvalidName(String)
    } derive(Eq,
    Debug
    )

    NameError::equal

    fn NameError::equal(NameError, NameError) -> Bool

    NameError::not_equal

    fn NameError::not_equal(x : NameError, y : NameError) -> Bool

    Access

    pub(all) enum Access {
    Public
    Private
    } derive(Eq,
    Debug
    )

    Access::equal

    fn Access::equal(Access, Access) -> Bool

    Access::not_equal

    fn Access::not_equal(x : Access, y : Access) -> Bool

    Access::to_repr

    AccessControlled

    pub(all) struct AccessControlled[T] {
    access : Access
    value : T
    } derive(Eq,
    Debug
    )

    AccessControlled::equal

    fn[T : Eq] AccessControlled::equal(AccessControlled[T], AccessControlled[T]) -> Bool

    AccessControlled::not_equal

    fn[T : Eq] AccessControlled::not_equal(x : AccessControlled[T], y : AccessControlled[T]) -> Bool

    Data

    pub(all) enum Data {
    Null
    Boolean(Bool)
    Number(String)
    Text(String)
    Array(Array[Data])
    Object(Map[String, Data])
    } derive(Eq,
    Debug
    )

    JSON-shaped extension data. Number lexemes never pass through a floating-point value. This is a data model, not a parser; codecs must validate number lexemes.

    Data::equal

    fn Data::equal(Data, Data) -> Bool

    Data::not_equal

    fn Data::not_equal(x : Data, y : Data) -> Bool

    Data::to_repr

    Documented

    pub(all) struct Documented[T] {
    doc : String?
    value : T
    } derive(Eq,
    Debug
    )

    Documented::equal

    fn[T : Eq] Documented::equal(Documented[T], Documented[T]) -> Bool

    Documented::not_equal

    fn[T : Eq] Documented::not_equal(x : Documented[T], y : Documented[T]) -> Bool

    FQName

    pub(all) struct FQName {
    package_name : Path
    module_name : Path
    local_name : Name
    } derive(Compare, Eq, Hash,
    Debug
    )

    FQName::compare

    fn FQName::compare(FQName, FQName) -> Int

    FQName::equal

    fn FQName::equal(FQName, FQName) -> Bool

    FQName::hash

    fn FQName::hash(self : FQName) -> Int

    FQName::hash_combine

    fn FQName::hash_combine(FQName, Hasher) -> Unit

    FQName::not_equal

    fn FQName::not_equal(x : FQName, y : FQName) -> Bool

    FQName::op_ge

    fn FQName::op_ge(x : FQName, y : FQName) -> Bool

    FQName::op_gt

    fn FQName::op_gt(x : FQName, y : FQName) -> Bool

    FQName::op_le

    fn FQName::op_le(x : FQName, y : FQName) -> Bool

    FQName::op_lt

    fn FQName::op_lt(x : FQName, y : FQName) -> Bool

    FQName::parse

    fn FQName::parse(text : String) -> FQName raise NameError

    FQName::to_canonical

    fn FQName::to_canonical(self : FQName) -> String

    FQName::to_repr

    Name

    Immutable storage keeps names safe as map keys.

    Name::compare

    fn Name::compare(Name, Name) -> Int

    Name::equal

    fn Name::equal(Name, Name) -> Bool

    Name::from_words

    fn Name::from_words(words : Array[String]) -> Name

    Decode legacy words using the upstream maximal-single-letter-run rule.

    Name::hash

    fn Name::hash(self : Name) -> Int

    Name::hash_combine

    fn Name::hash_combine(Name, Hasher) -> Unit

    Name::not_equal

    fn Name::not_equal(x : Name, y : Name) -> Bool

    Name::op_ge

    fn Name::op_ge(x : Name, y : Name) -> Bool

    Name::op_gt

    fn Name::op_gt(x : Name, y : Name) -> Bool

    Name::op_le

    fn Name::op_le(x : Name, y : Name) -> Bool

    Name::op_lt

    fn Name::op_lt(x : Name, y : Name) -> Bool

    Name::parse

    fn Name::parse(text : String) -> Name raise NameError

    Parse the v4 canonical name grammar without guessing from camel case.

    Name::to_canonical

    fn Name::to_canonical(self : Name) -> String

    Name::to_repr

    Name::to_segments

    fn Name::to_segments(self : Name) -> Array[NameSegment]

    A fresh array; changing it cannot change the name.

    Name::to_words

    fn Name::to_words(self : Name) -> Array[String]

    Legacy spelling. Some canonical v4 names have no lossless legacy spelling; version migration must check the round trip instead of silently collapsing them.

    NameSegment

    pub(all) enum NameSegment {
    Word(String)
    Initialism(String)
    } derive(Compare, Eq, Hash,
    Debug
    )

    A word and an initialism remain distinct in the semantic name.

    NameSegment::compare

    fn NameSegment::compare(NameSegment, NameSegment) -> Int

    NameSegment::equal

    fn NameSegment::equal(NameSegment, NameSegment) -> Bool

    NameSegment::hash

    fn NameSegment::hash(self : NameSegment) -> Int

    NameSegment::hash_combine

    fn NameSegment::hash_combine(NameSegment, Hasher) -> Unit

    NameSegment::not_equal

    fn NameSegment::not_equal(x : NameSegment, y : NameSegment) -> Bool

    NameSegment::op_ge

    fn NameSegment::op_ge(x : NameSegment, y : NameSegment) -> Bool

    NameSegment::op_gt

    fn NameSegment::op_gt(x : NameSegment, y : NameSegment) -> Bool

    NameSegment::op_le

    fn NameSegment::op_le(x : NameSegment, y : NameSegment) -> Bool

    NameSegment::op_lt

    fn NameSegment::op_lt(x : NameSegment, y : NameSegment) -> Bool

    Path

    #alias(PackageName)
    #alias(ModuleName)
    pub struct Path {
    segments :
    List
    [Name]
    } derive(Compare, Eq, Hash,
    Debug
    )

    Path::compare

    fn Path::compare(Path, Path) -> Int

    Path::equal

    fn Path::equal(Path, Path) -> Bool

    Path::from_names

    fn Path::from_names(segments : Array[Name]) -> Path

    Path::hash

    fn Path::hash(self : Path) -> Int

    Path::hash_combine

    fn Path::hash_combine(Path, Hasher) -> Unit

    Path::not_equal

    fn Path::not_equal(x : Path, y : Path) -> Bool

    Path::op_ge

    fn Path::op_ge(x : Path, y : Path) -> Bool

    Path::op_gt

    fn Path::op_gt(x : Path, y : Path) -> Bool

    Path::op_le

    fn Path::op_le(x : Path, y : Path) -> Bool

    Path::op_lt

    fn Path::op_lt(x : Path, y : Path) -> Bool

    Path::parse

    fn Path::parse(text : String) -> Path raise NameError

    Path::to_canonical

    fn Path::to_canonical(self : Path) -> String

    Path::to_names

    fn Path::to_names(self : Path) -> Array[Name]

    Path::to_repr