Initial Dever 0.0.1

This commit is contained in:
Codex committed 2026-11-03 03:32:07 +00:00
commit 81233d098c
1479 files changed
+163782

No files matched your search

+74
View File
@@ -0,0 +1,74 @@
scalarText(source: Text) (answer: Text) {
answer = dever.json.toText(dever.json.encode(source))
}
decodeList(value: Json) (items: List<Text>) {
decoded: List<Text> = dever.json.decode(value)
items = decoded
}
type DecodeResult { Decoded(values: List<Text>)
error Invalid(cause: dever.json.JsonResult) }
decodeCaptured(value: Json) (answer: Int) {
decoded: DecodeResult = result(dever.json.decode(value))
answer = capturedLength(decoded)
}
capturedLength(value: DecodeResult.Decoded(values)) (answer: Int) recover("无效输入返回负数") { answer = length(values) }
capturedLength(value: DecodeResult.Invalid(cause)) (answer: Int) recover("无效输入返回负数") { answer = -1 }
type State { Ready
Busy }
decodeState(value: Json) (ready: Bool) {
state: State = dever.json.decode(value)
ready = state == State.Ready
}
scalarFloat(source: Float) (answer: Text) {
answer = dever.json.toText(dever.json.encode(source))
}
type Payload { values: List<Int> }
encode(values: List<Int>) (answer: Text) {
payload = Payload { values = values }
answer = dever.json.toText(dever.json.encode(payload))
}
type Nested { value: Json }
nested(value: Json) (answer: Text) {
payload = Nested { value = value }
answer = dever.json.toText(dever.json.encode(payload))
}
lookup(source: Text) (answer: Int) {
value = dever.json.fromText(source)
answer = number(dever.json.propertyValue(value, "count"))
}
number(value: null) (answer: Int) { answer = -1 }
number(value: Json) (answer: Int) { answer = dever.json.asInteger(value) }
update(source: Text) (answer: Text) {
value = dever.json.fromText(source)
answer = dever.json.toText(dever.json.setProperty(value, "count", dever.json.integer(43)))
}
document(source: Text) (answer: Text) {
value = dever.json.parse(source)
answer = dever.json.stringify(value)
}
type Fixed { text: Text, amount: Int, ratio: Float }
fixedRecord(source: Text, ratio: Float) (answer: Text) {
value = Fixed { text = source, amount = 7, ratio = ratio }
answer = dever.json.toText(dever.json.encode(value))
}
arrayText(values: List<Json>) (answer: Text) {
answer = dever.json.toText(dever.json.array(values))
}