A strict RON parser, serializer, formatter, and typed codec for MoonBit.
Dependencies
Config {
name: "api",
ports: [8080, 8081],
limits: { "cpu": 4, "memory": 1024U },
window: 1..=10,
}moon add L76148/moon-ron@0.2.0let value = @ron.parse(
"Point(x: 1, y: 2, tags: [\"parser\", \"ron\"])",
)
let source = @ron.to_string(value)
let readable = @ron.to_string_pretty(value, indent=2)impl @ron.ToRon for Point with fn to_ron(self, options) { ... }
impl @ron.FromRon for Point with fn from_ron(value, path, options) { ... }
let source = @ron.encode(point)
let point : Point = @ron.decode(source)moon run cmd/main
moon run cmd/typed
moon run cmd/extensionsmoon run cmd/ron -- check corpus/basic.ron
moon run cmd/ron -- format corpus/basic.ron
moon run cmd/ron -- compact corpus/kitchen_sink.ronmoon check --deny-warn
moon test --deny-warn
moon fmt --checkfn[T : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> T? raise RonDecodeErrorfn[Ok : FromRon, Err : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> Result[Ok, Err] raise RonDecodeErrorimpl FromRon for FixedArray[T]fn[T : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> FixedArray[T] raise RonDecodeErrorfn[T : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> Array[T] raise RonDecodeErrorfn[V : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> Map[String, V] raise RonDecodeErrorfn[A : FromRon, B : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> (A, B) raise RonDecodeErrorfn[A : FromRon, B : FromRon, C : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> (A, B, C) raise RonDecodeErrorfn[A : FromRon, B : FromRon, C : FromRon, D : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> (A, B, C, D) raise RonDecodeErrorfn[A : FromRon, B : FromRon, C : FromRon, D : FromRon, E : FromRon] from_ron(value : RonValue, path : RonPath, options : RonOptions) -> (A, B, C, D, E) raise RonDecodeErrorpub(all) suberror RonError {
UnexpectedChar(RonPosition, Char)
UnexpectedEof(RonPosition)
InvalidEscape(RonPosition)
InvalidNumber(RonPosition, String)
InvalidValue(RonPosition, String)
UnknownExtension(RonPosition, String)
UnknownAttribute(RonPosition, String)
InvalidAttribute(RonPosition, String)
DepthLimitExceeded(Int)
} derive(Eq, Debug)fn RonRange::from_ron(value : RonValue, path : RonPath, _ : RonOptions) -> RonRange raise RonDecodeErrorpub(all) enum RonValue {
Unit
Bool(Bool)
Number(RonNumber)
Char(Char)
String(String)
Bytes(Bytes)
Byte(Byte)
Option(RonValue?)
Sequence(Array[RonValue])
Tuple(Array[RonValue])
Map(Array[(RonValue, RonValue)])
Struct(String, Array[(String, RonValue)])
TupleStruct(String, Array[RonValue])
Enum(String, String, Array[(String, RonValue)])
EnumTuple(String, String, Array[RonValue])
Range(RonRange)
Identifier(String)
} derive(Eq, Debug)fn RonValue::from_ron(value : RonValue, _ : RonPath, _ : RonOptions) -> RonValue raise RonDecodeErrorfn[T : FromRon] decode_with_options(source : StringView, options? : RonOptions) -> T raise RonDecodeErrorfn[T : FromRon] field(fields : Array[(String, RonValue)], name : String, path : RonPath, options : RonOptions) -> T raise RonDecodeErrorfn field_value(fields : Array[(String, RonValue)], name : String, path : RonPath) -> RonValue raise RonDecodeErrorfn[T : FromRon] from_value_with_options(value : RonValue, options : RonOptions) -> T raise RonDecodeErrorfn[T : FromRon] newtype(value : RonValue, path : RonPath, options : RonOptions) -> T raise RonDecodeErrorfn[T : FromRon] positional(values : Array[RonValue], index : Int, path : RonPath, options : RonOptions) -> T raise RonDecodeErrorfn require_struct_name(value : RonValue, expected : String, path : RonPath, options : RonOptions) -> Unit raise RonDecodeErrorfn struct_fields(value : RonValue, path : RonPath) -> Array[(String, RonValue)] raise RonDecodeErrorfn valid(source : StringView) -> Boolfn[T : FromRon] variant_newtype(value : RonValue, variant : String, path : RonPath, options : RonOptions) -> T raise RonDecodeErrorInstall
Download zipA strict RON parser, serializer, formatter, and typed codec for MoonBit.
Dependencies