24 lines
709 B
Dart
24 lines
709 B
Dart
class OperationCodePair {
|
|
final String operation;
|
|
final String action;
|
|
|
|
const OperationCodePair({required this.operation, required this.action});
|
|
}
|
|
|
|
OperationCodePair? parseOperationCodePair(String? code) {
|
|
final normalized = code?.trim().toLowerCase();
|
|
if (normalized == null || normalized.isEmpty) return null;
|
|
|
|
final parts = normalized.split('.').where((part) => part.isNotEmpty).toList();
|
|
if (parts.length >= 4 && (parts.first == 'hop' || parts.first == 'edge')) {
|
|
return OperationCodePair(operation: parts[2], action: parts[3]);
|
|
}
|
|
if (parts.length >= 2) {
|
|
return OperationCodePair(
|
|
operation: parts[parts.length - 2],
|
|
action: parts.last,
|
|
);
|
|
}
|
|
return null;
|
|
}
|