// Auto-generated by unicode-build. Do not edit by hand.
// Regenerate via:
// make ucd-generate
//
// Source: EastAsianWidth.txt. `EastAsianWidth` is a
// closed union — exhaustive `match` is compile-checked.
// N (Neutral) is the default for unassigned codepoints.
primitive EAWN
fun code(): String val => "N"
fun string(): String val => "N"
primitive EAWA
fun code(): String val => "A"
fun string(): String val => "A"
primitive EAWF
fun code(): String val => "F"
fun string(): String val => "F"
primitive EAWH
fun code(): String val => "H"
fun string(): String val => "H"
primitive EAWNa
fun code(): String val => "Na"
fun string(): String val => "Na"
primitive EAWW
fun code(): String val => "W"
fun string(): String val => "W"
type EastAsianWidth is
( EAWN
| EAWA
| EAWF
| EAWH
| EAWNa
| EAWW
)
primitive EastAsianWidths
fun from_iso(s: String box): (EastAsianWidth | None) =>
match s
| "N" => EAWN
| "A" => EAWA
| "F" => EAWF
| "H" => EAWH
| "Na" => EAWNa
| "W" => EAWW
else None
end
fun _to_byte(ea: EastAsianWidth): U8 =>
match ea
| EAWN => 0
| EAWA => 1
| EAWF => 2
| EAWH => 3
| EAWNa => 4
| EAWW => 5
end
fun _from_byte(b: U8): EastAsianWidth =>
match b
| 0 => EAWN
| 1 => EAWA
| 2 => EAWF
| 3 => EAWH
| 4 => EAWNa
| 5 => EAWW
else EAWN
end