parseBitRange static method

(int, int)? parseBitRange(
  1. String input,
  2. int maxBit
)

Parse a bit range string (high:low) or single bit index.

Returns (high, low) clamped to [0, maxBit], or null if invalid.

Implementation

static (int, int)? parseBitRange(String input, int maxBit) {
  if (input.contains(':')) {
    final parts = input.split(':');
    if (parts.length != 2) {
      return null;
    }
    final high = int.tryParse(parts[0].trim());
    final low = int.tryParse(parts[1].trim());
    if (high == null || low == null) {
      return null;
    }
    final h = high.clamp(0, maxBit);
    final l = low.clamp(0, maxBit);
    return h >= l ? (h, l) : (l, h);
  }
  final bit = int.tryParse(input);
  if (bit == null) {
    return null;
  }
  final clamped = bit.clamp(0, maxBit);
  return (clamped, clamped);
}