encodeFields<T extends Object> static method

  1. @protected
Map<String, dynamic> encodeFields<T extends Object>(
  1. T value,
  2. Iterable<Field<T, dynamic>> fields,
  3. bool ignoreNull,
  4. EncodingContext context,
)

Implementation

@protected
@pragma('vm:prefer-inline')
static Map<String, dynamic> encodeFields<T extends Object>(
    T value,
    Iterable<Field<T, dynamic>> fields,
    bool ignoreNull,
    EncodingContext context) {
  bool shallow = context.options?.shallow ?? false;
  if (shallow) {
    return {
      for (var f in fields)
        if (!ignoreNull || f.get(value) != null) f.key: f.get(value),
    };
  }
  if (ignoreNull) {
    return {
      for (var f in fields)
        if (f.get(value) != null) f.key: f.encode(value, context),
    };
  }
  return {for (var f in fields) f.key: f.encode(value, context)};
}