figbus / elm-urbit-api / Urbit.Encoding.Phonemic

Encoding/Decoding module for urbit

@p

Phonemic Base (Ship Names)

toPatp : Urbit.Encoding.Atom.Atom -> String

Try to convert an Atom into a @p encoded string, failing on negative numbers.

import Urbit.Encoding.Atom as Atom

Atom.fromInt 65536 |> Maybe.map toPatp
--> Just "~dapnep-ronmyl"

fromPatp : String -> Result (List Parser.DeadEnd) Urbit.Encoding.Atom.Atom

Try to convert a @p encoded string into an Atom, failing on improperly formatted strings.

import Urbit.Encoding.Atom as Atom
import BigInt

fromPatp "~sampel-palnet"
    |> Result.map (Atom.toBigInt >> BigInt.toString)
--> Ok "1624961343"

patpParser : Parser Urbit.Encoding.Atom.Atom

Parser for @p encoded strings.

@q

Phonemic Base, Unscrambled

toPatq : Urbit.Encoding.Atom.Atom -> String

Try to convert an Atom into a @q encoded string, failing on negative numbers.

import Urbit.Encoding.Atom as Atom

Atom.fromInt 5 |> Maybe.map toPatq
--> Just "~per"

fromPatq : String -> Result (List Parser.DeadEnd) Urbit.Encoding.Atom.Atom

Try to convert a @q encoded string into an Atom, failing on improperly formatted strings.

import Urbit.Encoding.Atom as Atom
import BigInt

fromPatq "~sampel"
    |> Result.map (Atom.toBigInt >> BigInt.toString)
--> Ok "1135"

patqParser : Parser Urbit.Encoding.Atom.Atom

Parser for @q encoded strings.