tryParse static method

Unit? tryParse(
  1. String source
)

Parses a physical unit, or returns null when source is not one.

Implementation

static Unit? tryParse(String source) {
  final trimmed = source.trim();
  final match = _unitPattern.firstMatch(trimmed);
  if (match == null) {
    return null;
  }

  final value = double.tryParse(match.group(1)!);
  if (value == null || !value.isFinite) {
    return null;
  }

  return switch (match.group(2)!) {
    'px' => Px(value),
    'rem' => Rem(value),
    'em' => Em(value),
    'ms' => Milliseconds(value),
    's' => Seconds(value),
    'deg' => Degrees(value),
    'rad' => Radians(value),
    'turn' => Turns(value),
    _ => null,
  };
}