IterableProperty<T> constructor Null safety

IterableProperty<T>(
  1. String name,
  2. Iterable<T>? value,
  3. {Object? defaultValue = kNoDefaultValue,
  4. String? ifNull,
  5. String? ifEmpty = '[]',
  6. DiagnosticsTreeStyle style = DiagnosticsTreeStyle.singleLine,
  7. bool showName = true,
  8. bool showSeparator = true,
  9. DiagnosticLevel level = DiagnosticLevel.info}
)

Create a diagnostics property for iterables (e.g. lists).

The ifEmpty argument is used to indicate how an iterable value with 0 elements is displayed. If ifEmpty equals null that indicates that an empty iterable value is not interesting to display similar to how defaultValue is used to indicate that a specific concrete value is not interesting to display.

The style, showName, showSeparator, and level arguments must not be null.

Implementation

IterableProperty(
  String name,
  Iterable<T>? value, {
  Object? defaultValue = kNoDefaultValue,
  String? ifNull,
  String? ifEmpty = '[]',
  DiagnosticsTreeStyle style = DiagnosticsTreeStyle.singleLine,
  bool showName = true,
  bool showSeparator = true,
  DiagnosticLevel level = DiagnosticLevel.info,
}) : assert(style != null),
     assert(showName != null),
     assert(showSeparator != null),
     assert(level != null),
     super(
  name,
  value,
  defaultValue: defaultValue,
  ifNull: ifNull,
  ifEmpty: ifEmpty,
  style: style,
  showName: showName,
  showSeparator: showSeparator,
  level: level,
);