def json.float

yaml-for-bend@0.1.1.0 · value.bend:280

import yaml-for-bend@0.1.1.0/value.bend as Value
import Base

280# A float in JSON's form: "+.5e3" is 0.5e3; infinity and NaN stay as YAML
281# writes them, since JSON has no word for them.
282def json.float(+t: String) -> String:
283  +neg = String.starts_with(t, "-")
284  +body = Bool.pick(String, Bool.or(neg, String.starts_with(t, "+")), String.drop(t, 1n), t)
285  Bool.pick(String, String.starts_with(body, "."), Bool.pick(String, Char.is_digit(Maybe.default(&2, Char, String.get(body, 1n), ' ')), Bool.pick(String, neg, "-0", "0") ++ zero.point(body), t),
286    Bool.pick(String, neg, "-", "") ++ zero.point(body))

Uses (11)

Used by (1)