FilterField extension type

A type-safe field identifier for filtering operations.

This extension type wraps a String to provide compile-time type safety when specifying fields in filter operations. It implements String, making it transparent and zero-cost at runtime while ensuring only valid fields can be used in filter operations.

Supported Operators

All filter fields support the following operators:

  • Comparison: .equal, .greater, .greaterOrEqual, .less, .lessOrEqual
  • List: .in_, .contains
  • Existence: .exists
  • Evaluation: .query, .autoComplete
  • Path: .pathExists
  • Logical: .and, .or

Example implementation:

extension type const MyFilterField(String remote) implements FilterField {
  /// Filter by unique identifier.
  ///
  /// **Supported operators**: `.equal`, `.in_`
  static const id = MyFilterField('id');

  /// Filter by display name.
  ///
  /// **Supported operators**: `.equal`, `.query`, `.autoComplete`
  static const name = MyFilterField('name');

  /// Filter by numeric age value.
  ///
  /// **Supported operators**: `.equal`, `.greater`, `.greaterOrEqual`, `.less`, `.lessOrEqual`
  static const age = MyFilterField('age');

  /// Filter by creation timestamp.
  ///
  /// **Supported operators**: `.equal`, `.greater`, `.greaterOrEqual`, `.less`, `.lessOrEqual`
  static const createdAt = MyFilterField('created_at');

  /// Filter by tag collections.
  ///
  /// **Supported operators**: `.in_`, `.contains`
  static const tags = MyFilterField('tags');

  /// Filter by JSON metadata existence.
  ///
  /// **Supported operators**: `.exists`, `.pathExists`
  static const metadata = MyFilterField('metadata');
}
on
Implemented types
Implementers
Available extensions

Constructors

FilterField(String _)

Properties

codeUnits List<int>
An unmodifiable list of the UTF-16 code units of this string.
no setterinherited
hashCode int
A hash code derived from the code units of the string.
no setterinherited
isEmpty bool
Whether this string is empty.
no setterinherited
isNotEmpty bool
Whether this string is not empty.
no setterinherited
length int
The length of the string.
no setterinherited
runes Runes
An Iterable of Unicode code-points of this string.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
toJS JSString

Available on String, provided by the StringToJSString extension

Converts this String to a JSString.
no setter

Methods

allMatches(String string, [int start = 0]) Iterable<Match>
Matches this pattern against the string repeatedly.
inherited
codeUnitAt(int index) int
Returns the 16-bit UTF-16 code unit at the given index.
inherited
compareTo(String other) int
Compares this string to other.
inherited
contains(Pattern other, [int startIndex = 0]) bool
Whether this string contains a match of other.
inherited
endsWith(String other) bool
Whether this string ends with other.
inherited
indexOf(Pattern pattern, [int start = 0]) int
Returns the position of the first match of pattern in this string, starting at start, inclusive:
inherited
lastIndexOf(Pattern pattern, [int? start]) int
The starting position of the last match pattern in this string.
inherited
matchAsPrefix(String string, [int start = 0]) Match?
Matches this pattern against the start of string.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
padLeft(int width, [String padding = ' ']) String
Pads this string on the left if it is shorter than width.
inherited
padRight(int width, [String padding = ' ']) String
Pads this string on the right if it is shorter than width.
inherited
replaceAll(Pattern from, String replace) String
Replaces all substrings that match from with replace.
inherited
replaceAllMapped(Pattern from, String replace(Match match)) String
Replace all substrings that match from by a computed string.
inherited
replaceFirst(Pattern from, String to, [int startIndex = 0]) String
Creates a new string with the first occurrence of from replaced by to.
inherited
replaceFirstMapped(Pattern from, String replace(Match match), [int startIndex = 0]) String
Replace the first occurrence of from in this string.
inherited
replaceRange(int start, int? end, String replacement) String
Replaces the substring from start to end with replacement.
inherited
split(Pattern pattern) List<String>
Splits the string at matches of pattern and returns a list of substrings.
inherited
splitMapJoin(Pattern pattern, {String onMatch(Match)?, String onNonMatch(String)?}) String
Splits the string, converts its parts, and combines them into a new string.
inherited
startsWith(Pattern pattern, [int index = 0]) bool
Whether this string starts with a match of pattern.
inherited
substring(int start, [int? end]) String
The substring of this string from start, inclusive, to end, exclusive.
inherited
toLowerCase() String
Converts all characters in this string to lower case.
inherited
toString() String
A string representation of this object.
inherited
toUpperCase() String
Converts all characters in this string to upper case.
inherited
trim() String
The string without any leading and trailing whitespace.
inherited
trimLeft() String
The string without any leading whitespace.
inherited
trimRight() String
The string without any trailing whitespace.
inherited

Operators

operator *(int times) String
Creates a new string by concatenating this string with itself a number of times.
inherited
operator +(String other) String
Creates a new string by concatenating this string with other.
inherited
operator ==(Object other) bool
Whether other is a String with the same sequence of code units.
inherited
operator [](int index) String
The character (as a single-code-unit String) at the given index.
inherited