75 lines
2.1 KiB
Plaintext
75 lines
2.1 KiB
Plaintext
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))
|
|
}
|