map<_T> method

_T map<_T>({
  1. required _T ref(
    1. CompValueRef<T> value
    ),
  2. required _T single(
    1. CompValueSingle<T> value
    ),
  3. required _T list(
    1. CompValueList<T> value
    ),
})

Implementation

_T map<_T>({
  required _T Function(CompValueRef<T> value) ref,
  required _T Function(CompValueSingle<T> value) single,
  required _T Function(CompValueList<T> value) list,
}) {
  final v = this;
  if (v is CompValueRef<T>) {
    return ref(v);
  } else if (v is CompValueSingle<T>) {
    return single(v);
  } else if (v is CompValueList<T>) {
    return list(v);
  }
  throw Exception();
}