docs: public IPAddressString adjustPrefixBySegment(boolean nextSegment) {
  		if(isPrefixOnly()) {
  			// Use IPv4 segment boundaries
  			int bitsPerSegment = IPv4Address.BITS_PER_SEGMENT;
  			int existingPrefixLength = getNetworkPrefixLength();
  			int newBits;
  			if(nextSegment) {
  				int adjustment = existingPrefixLength % bitsPerSegment;
  				newBits = Math.min(IPv6Address.BIT_COUNT, existingPrefixLength + bitsPerSegment - adjustment);
  			} else {
  				int adjustment = ((existingPrefixLength - 1) % bitsPerSegment) + 1;
  				newBits = Math.max(0, existingPrefixLength - adjustment);
  			}
  			return new IPAddressString(IPAddressNetwork.getPrefixString(newBits), validationOptions);
  		}
  		IPAddress address = getAddress();
  		if(address == null) {
  			return null;
  		}
  		Integer prefix = address.getNetworkPrefixLength();
  		if(!nextSegment && prefix != null && prefix == 0 && address.isMultiple() && address.isPrefixBlock()) {
  			return new IPAddressString(IPAddress.SEGMENT_WILDCARD_STR, validationOptions);
  		}
  		return address.adjustPrefixBySegment(nextSegment).toAddressString();
  	}