code: private ByteArrayField nextFieldWithPrefix(char c) {
          if (prefix.isEmpty()) {
              flip();
              return suffix.nextField(c);
          }
          int startIndex = currentIndex();
          int endIndex = currentIndex();
          byte cur = 0;
          while(hasMoreData()) {
              cur = currentByte();
              if (cur == c || cur == CR || cur == LF) {
                  endIndex = currentIndex();
                  if (cur == c)
                      nextByte();
                  break;
              } else {
                  nextByte();
              }
          }
          if (currentIndex() == startIndex) return null;
          if (cur != c && !hasMoreData()) endIndex = prefix.end + suffix.end;
          return createField(startIndex, endIndex, null);
      }
docs: /*
  -----------------------------------------------------------
  Generic functions below work on slice with non-empty prefix, but once prefix has been
  exhausted they will flip to simple suffix delegates.
  Only frequently called functions are implemented that way.
  -----------------------------------------------------------