docs: public static Integer getIntValue(@NonNull byte[] value, @IntFormatType int formatType, @IntRange(from = 0) int offset) {
          if ((offset + getTypeLen(formatType)) > value.length) {
              RxBleLog.w(
                      "Int formatType (0x%x) is longer than remaining bytes (%d) - returning null", formatType, value.length - offset
              );
              return null;
          }
  
          switch (formatType) {
              case FORMAT_UINT8:
                  return unsignedByteToInt(value[offset]);
  
              case FORMAT_UINT16:
                  return unsignedBytesToInt(value[offset], value[offset + 1]);
  
              case FORMAT_UINT32:
                  return unsignedBytesToInt(value[offset],   value[offset + 1],
                          value[offset + 2], value[offset + 3]);
              case FORMAT_SINT8:
                  return unsignedToSigned(unsignedByteToInt(value[offset]), 8);
  
              case FORMAT_SINT16:
                  return unsignedToSigned(unsignedBytesToInt(value[offset],
                          value[offset + 1]), 16);
  
              case FORMAT_SINT32:
                  return unsignedToSigned(unsignedBytesToInt(value[offset],
                          value[offset + 1], value[offset + 2], value[offset + 3]), 32);
              default:
                  RxBleLog.w("Passed an invalid integer formatType (0x%x) - returning null", formatType);
                  return null;
          }
      }