fold<A> method

A fold<A>(
  1. Function0<A> jsonNull,
  2. Function1<bool, A> jsonBoolean,
  3. Function1<num, A> jsonNumber,
  4. Function1<String, A> jsonString,
  5. Function1<IList<Json>, A> jsonArray,
  6. Function1<JsonObject, A> jsonObject,
)

Implementation

A fold<A>(
  Function0<A> jsonNull,
  Function1<bool, A> jsonBoolean,
  Function1<num, A> jsonNumber,
  Function1<String, A> jsonString,
  Function1<IList<Json>, A> jsonArray,
  Function1<JsonObject, A> jsonObject,
) =>
    switch (this) {
      JNull _ => jsonNull(),
      final JBoolean b => jsonBoolean(b.value),
      final JNumber n => jsonNumber(n.value),
      final JString s => jsonString(s.value),
      final JArray a => jsonArray(a.value),
      final JObject o => jsonObject(o.value),
    };