rrousselGit/freezed

Add option to include getters in toString() and exclude parameters

Ouverte

#698 ouverte le 6 juil. 2022

 (1 commentaire) (0 réaction) (1 personne assignée)Dart (300 forks)github user discovery
enhancementgood first issue

Métriques du dépôt

Stars
 (2 177 étoiles)
Métriques de merge PR
 (Merge moyen 25j 18h) (1 PR mergée en 30 j)

Description

Is your feature request related to a problem? Please describe. Sometimes it's helpful for debugging to have the result of some getters in the toString() method.

Describe the solution you'd like

// until now
@freezed
class MyClass with _$MyClass {
  const factory MyClass({
    required int a,
    required int b,
  }) = _MyClass;

  const MyClass._();

  int get sum => a + b;
}

MyClass(a: 40, b: 2).toString(); // => 'MyClass(a: 40, b: 2)'

// expected
MyClass(a: 40, b: 2).toString(); // => 'MyClass(a: 40, b: 2, sum: 42)'

// could be achieved by annotating the whole class or a single getter

@Freezed(toStringWithGetters: true)
class MyClass with _$MyClass {
  const factory MyClass({
    required int a,
    required int b,
  }) = _MyClass;

  const MyClass._();

  int get sum => a + b;
}

// or

@freezed
class MyClass with _$MyClass {
  const factory MyClass({
    required int a,
    required int b,
  }) = _MyClass;

  const MyClass._();

  @addToString
  int get sum => a + b;
}

Guide contributeur