parse static method

FormatParseResult parse(
  1. String twoWordFormat
)

Parses twoWordFormat into input and output format keys.

Supports both → and -> as separators. Throws ArgumentError if the format is invalid.

Implementation

static FormatParseResult parse(String twoWordFormat) {
  final trimmed = twoWordFormat.trim();
  if (trimmed.isEmpty) {
    throw ArgumentError('Format string cannot be empty');
  }

  String? inputKey;
  String? outputKey;

  if (trimmed.contains('→')) {
    final parts = trimmed.split('→');
    if (parts.length != 2) {
      throw ArgumentError('Invalid format: $twoWordFormat');
    }
    inputKey = parts[0].trim();
    outputKey = parts[1].trim();
  } else if (trimmed.contains('->')) {
    final parts = trimmed.split('->');
    if (parts.length != 2) {
      throw ArgumentError('Invalid format: $twoWordFormat');
    }
    inputKey = parts[0].trim();
    outputKey = parts[1].trim();
  } else {
    throw ArgumentError('Invalid format: $twoWordFormat');
  }

  if (inputKey.isEmpty || outputKey.isEmpty) {
    throw ArgumentError('Invalid format: $twoWordFormat');
  }

  return FormatParseResult(inputKey: inputKey, outputKey: outputKey);
}