code: private SlotIndexOffset validSlotIndexOffset(Slot slot, final char value) {
          final SlotIndexOffset result = new SlotIndexOffset();
  
          while (slot != null && !slot.canInsertHere(value)) {
              if (!result.nonHarcodedSlotSkipped && !slot.hardcoded()) {
                  result.nonHarcodedSlotSkipped = true;
              }
              slot = slot.getNextSlot();
              result.indexOffset++;
          }
  
          return result;
      }
docs: Looks for a slot to insert {@code value}. Search moves to the right from the specified one
  (including it). While searching it checks whether the're any non-hardcoded slots that cannot
  accept pending input if such slots are found it is marked in a resulting object.
  
  @param slot  slot from where to start
  @param value value to be inserted to slot
  @return wrapper around index offset to the found slot and flag showing did search skip any
  non-hardcoded slots