walk method

  1. @override
FieldMirror<T> walk(
  1. Mapper f
)
override

Copies this instance, mapping each field with f.

Example

import 'package:kind/kind.dart';

class Person with HasKind, HasMapping {
  static const kind = ImmutableKind<Person>.withMapperMethod(
    blank: const Person(),
  );

  final String name;

  const Person({this.name=''});

  @override
  Kind<Person> runtimeKind => kind;

  @override
  Person mapper(Mapper f) {
    return Person(
      f(name, 'name', kind: const StringKind()),
    );
  }
}

Implementation

@override
FieldMirror<T> walk(Mapper f) {
  final name = f(
    this.name,
    'name',
    kind: const StringKind.singleLineShort(),
  );
  final jsonName = f(
    this.jsonName,
    'jsonName',
    kind: const StringKind.singleLineShort(),
  );
  final kind = f(
    this.kind,
    'kind',
    superKind: Kind.forKindInDebugMode,
  );
  final defaultValue = f(this.defaultValue, 'defaultValue');
  if (f.canReturnSame) {
    return this;
  }
  return FieldMirror<T>(
    name: name,
    jsonName: jsonName,
    kind: kind,
    defaultValue: defaultValue,
  );
}