encodeChar method

  1. @override
int encodeChar(
  1. int chr,
  2. StringBuffer sb
)
override

Implementation

@override
int encodeChar(int chr, StringBuffer sb) {
  // ' '
  if (chr == 32) {
    sb.write('\x03');
    return 1;
  }

  if (chr >= 48 /* 0 */ && chr <= 57 /* 9 */) {
    sb.writeCharCode(chr - 48 + 4);
    return 1;
  }
  if (chr >= 97 /* a */ && chr <= 122 /* z */) {
    sb.writeCharCode(chr - 97 + 14);
    return 1;
  }
  if (chr < 32 /*   */) {
    sb.write('\x00'); //Shift 1 Set
    sb.writeCharCode(chr);
    return 2;
  }
  if (chr <= 47 /* / */) {
    sb.write('\x01'); //Shift 2 Set
    sb.writeCharCode(chr - 33);
    return 2;
  }
  if (chr <= 64 /* @ */) {
    sb.write('\x01'); //Shift 2 Set
    sb.writeCharCode(chr - 58 + 15);
    return 2;
  }
  if (chr >= 91 /* [ */ && chr <= 95 /* _ */) {
    sb.write('\x01'); //Shift 2 Set
    sb.writeCharCode(chr - 91 + 22);
    return 2;
  }
  if (chr == 96 /* ` */) {
    sb.write('\x02'); //Shift 3 Set
    sb.writeCharCode(0); // '`' - 96 == 0
    return 2;
  }
  if (chr <= 90 /* Z */) {
    sb.write('\x02'); //Shift 3 Set
    sb.writeCharCode(chr - 65 + 1);
    return 2;
  }
  if (chr <= 127) {
    sb.write('\x02'); //Shift 3 Set
    sb.writeCharCode(chr - 123 + 27);
    return 2;
  }
  sb.write('\x01\u001e'); //Shift 2, Upper Shift
  int len = 2;
  len += encodeChar(chr - 128, sb);
  return len;
}