Future buildDefinitionForClass()

in working/macros/example/data_class.dart [240:256]


  Future<void> buildDefinitionForClass(
      ClassDeclaration clazz, ClassDefinitionBuilder builder) async {
    var methods = await builder.methodsOf(clazz);
    var toStringBuilder = await builder.buildMethod(
        methods.firstWhere((m) => m.identifier.name == 'toString').identifier);
    var fieldExprs = [
      await for (var field in clazz.allFields(builder))
        Code.fromString(
            '  ${field.identifier.name}: \${${field.identifier.name}}'),
    ].joinAsCode('\n');

    toStringBuilder.augment(FunctionBodyCode.fromParts([
      ' => """\${${clazz.identifier.name}} { ',
      ...fieldExprs,
      '}""";',
    ]));
  }