Class ByteString

  • All Implemented Interfaces:
    scala.collection.immutable.IndexedSeq<java.lang.Object>, scala.collection.immutable.IndexedSeqOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​scala.collection.immutable.IndexedSeq<java.lang.Object>>, scala.collection.immutable.Iterable<java.lang.Object>, scala.collection.immutable.Seq<java.lang.Object>, scala.collection.immutable.SeqOps<java.lang.Object,​scala.collection.immutable.Seq,​scala.collection.immutable.Seq<java.lang.Object>>, scala.collection.immutable.StrictOptimizedSeqOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​ByteString>, scala.collection.IndexedSeq<java.lang.Object>, scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>, scala.collection.Iterable<java.lang.Object>, scala.collection.IterableFactoryDefaults<java.lang.Object,​scala.collection.Iterable>, scala.collection.IterableOnce<java.lang.Object>, scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>, scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>, scala.collection.Seq<java.lang.Object>, scala.collection.SeqOps<java.lang.Object,​scala.collection.Seq,​scala.collection.Seq<java.lang.Object>>, scala.collection.StrictOptimizedIterableOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​ByteString>, scala.collection.StrictOptimizedSeqOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​ByteString>, scala.Equals, scala.Function1<java.lang.Object,​java.lang.Object>, scala.PartialFunction<java.lang.Object,​java.lang.Object>
    Direct Known Subclasses:
    ByteString.ByteString1, ByteString.ByteStrings, CompactByteString

    public abstract class ByteString
    extends java.lang.Object
    implements scala.collection.immutable.IndexedSeq<java.lang.Object>, scala.collection.immutable.IndexedSeqOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​ByteString>, scala.collection.immutable.StrictOptimizedSeqOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​ByteString>
    A rope-like immutable data structure containing bytes. The goal of this structure is to reduce copying of arrays when concatenating and slicing sequences of bytes, and also providing a thread safe way of working with bytes.

    TODO: Add performance characteristics

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ByteString.ByteString1
      An unfragmented ByteString.
      static class  ByteString.ByteString1$
      INTERNAL API: ByteString backed by exactly one array, with start / end markers
      static class  ByteString.ByteString1C
      A compact (unsliced) and unfragmented ByteString, implementation of ByteString1C.
      static class  ByteString.ByteString1C$  
      static class  ByteString.ByteStrings
      A ByteString with 2 or more fragments.
      static class  ByteString.ByteStrings$  
      static interface  ByteString.Companion  
      static class  ByteString.Companion$  
      • Nested classes/interfaces inherited from interface scala.Function1

        scala.Function1.UnliftOps<A extends java.lang.Object,​B extends java.lang.Object>, scala.Function1.UnliftOps$
      • Nested classes/interfaces inherited from interface scala.collection.IterableOps

        scala.collection.IterableOps.SizeCompareOps, scala.collection.IterableOps.SizeCompareOps$, scala.collection.IterableOps.WithFilter<A extends java.lang.Object,​CC extends java.lang.Object>
      • Nested classes/interfaces inherited from interface scala.PartialFunction

        scala.PartialFunction.ElementWiseExtractor<A extends java.lang.Object,​B extends java.lang.Object>, scala.PartialFunction.ElementWiseExtractor$
    • Constructor Summary

      Constructors 
      Constructor Description
      ByteString()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract ByteString $plus$plus​(ByteString that)
      Efficiently concatenate another ByteString.
      abstract byte apply​(int idx)  
      abstract java.nio.ByteBuffer asByteBuffer()
      Returns a read-only ByteBuffer that directly wraps this ByteString if it is not fragmented.
      abstract scala.collection.immutable.Iterable<java.nio.ByteBuffer> asByteBuffers()
      Scala API: Returns an immutable Iterable of read-only ByteBuffers that directly wraps this ByteStrings all fragments.
      java.lang.String className()  
      abstract CompactByteString compact()
      Create a new ByteString with all contents compacted into a single, full byte array.
      ByteString concat​(ByteString that)
      Java API: efficiently concatenate another ByteString.
      <B> int copyToArray​(java.lang.Object xs, int start)  
      <B> int copyToArray​(java.lang.Object xs, int start, int len)  
      abstract int copyToBuffer​(java.nio.ByteBuffer buffer)
      Copy as many bytes as possible to a ByteBuffer, starting from it's current position.
      static ByteStringBuilder createBuilder()
      Java API
      abstract ByteString decodeBase64()  
      abstract java.lang.String decodeString​(java.lang.String charset)
      Decodes this ByteString using a charset to produce a String.
      abstract java.lang.String decodeString​(java.nio.charset.Charset charset)
      Decodes this ByteString using a charset to produce a String.
      ByteString drop​(int n)  
      ByteString dropRight​(int n)  
      ByteString dropWhile​(scala.Function1<java.lang.Object,​java.lang.Object> p)  
      ByteString empty()  
      static ByteString emptyByteString()
      Java API
      abstract ByteString encodeBase64()
      Returns a ByteString which is the Base64 representation of this ByteString
      <U> void foreach​(scala.Function1<java.lang.Object,​U> f)  
      static ByteString fromArray​(byte[] array)
      Creates a new ByteString by copying a byte array.
      static ByteString fromArray​(byte[] array, int offset, int length)
      Creates a new ByteString by copying length bytes starting at offset from an Array.
      static ByteString fromArrayUnsafe​(byte[] array)
      Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.
      static ByteString fromArrayUnsafe​(byte[] array, int offset, int length)
      Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.
      static ByteString fromByteBuffer​(java.nio.ByteBuffer buffer)
      Creates a new ByteString by copying bytes out of a ByteBuffer.
      static ByteString fromInts​(int... array)
      JAVA API Creates a new ByteString by copying an int array by converting from integral numbers to bytes.
      static ByteString fromInts​(scala.collection.immutable.Seq<java.lang.Object> array)
      JAVA API Creates a new ByteString by copying an int array by converting from integral numbers to bytes.
      protected ByteString fromSpecific​(scala.collection.IterableOnce<java.lang.Object> coll)  
      static ByteString fromString​(java.lang.String string)
      Creates a new ByteString which will contain the UTF-8 representation of the given String
      static ByteString fromString​(java.lang.String string, java.lang.String charset)
      Creates a new ByteString which will contain the representation of the given String in the given charset
      static ByteString fromString​(java.lang.String string, java.nio.charset.Charset charset)
      Creates a new ByteString which will contain the representation of the given String in the given charset
      java.lang.Iterable<java.nio.ByteBuffer> getByteBuffers()
      Java API: Returns an Iterable of read-only ByteBuffers that directly wraps this ByteStrings all fragments.
      scala.collection.Iterator<ByteString> grouped​(int size)  
      byte head()  
      <B> int indexOf​(B elem, int from)  
      int indexWhere​(scala.Function1<java.lang.Object,​java.lang.Object> p, int from)  
      ByteString init()  
      abstract boolean isCompact()
      Check whether this ByteString is compact in memory.
      boolean isEmpty()  
      ByteIterator iterator()  
      byte last()  
      <A> ByteString map​(scala.Function1<java.lang.Object,​java.lang.Object> f)  
      ByteString mapI​(scala.Function1<java.lang.Object,​java.lang.Object> f)
      map method that will automatically cast Int back into Byte.
      static ByteStringBuilder newBuilder()  
      protected scala.collection.mutable.Builder<java.lang.Object,​ByteString> newSpecificBuilder()  
      ByteString slice​(int from, int until)  
      scala.Tuple2<ByteString,​ByteString> span​(scala.Function1<java.lang.Object,​java.lang.Object> p)  
      scala.Tuple2<ByteString,​ByteString> splitAt​(int n)  
      ByteString tail()  
      ByteString take​(int n)  
      ByteString takeRight​(int n)  
      ByteString takeWhile​(scala.Function1<java.lang.Object,​java.lang.Object> p)  
      protected byte[] toArray()
      Java API: copy this ByteString into a fresh byte array
      <B> java.lang.Object toArray​(scala.reflect.ClassTag<B> arg0)  
      byte[] toArrayUnsafe()
      Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.
      java.nio.ByteBuffer toByteBuffer()
      Creates a new ByteBuffer with a copy of all bytes contained in this ByteString.
      java.lang.String toString()  
      static java.lang.String UTF_8()
      Standard "UTF-8" charset
      java.lang.String utf8String()
      Decodes this ByteString as a UTF-8 encoded String.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface scala.Function1

        apply, apply$mcDD$sp, apply$mcDF$sp, apply$mcDI$sp, apply$mcDJ$sp, apply$mcFD$sp, apply$mcFF$sp, apply$mcFI$sp, apply$mcFJ$sp, apply$mcID$sp, apply$mcIF$sp, apply$mcII$sp, apply$mcIJ$sp, apply$mcJD$sp, apply$mcJF$sp, apply$mcJI$sp, apply$mcJJ$sp, apply$mcVD$sp, apply$mcVF$sp, apply$mcVI$sp, apply$mcVJ$sp, apply$mcZD$sp, apply$mcZF$sp, apply$mcZI$sp, apply$mcZJ$sp, compose
      • Methods inherited from interface scala.collection.immutable.IndexedSeq

        applyPreferredMaxLength, canEqual, iterableFactory, sameElements, toIndexedSeq
      • Methods inherited from interface scala.collection.IndexedSeq

        stringPrefix
      • Methods inherited from interface scala.collection.IndexedSeqOps

        foldRight, headOption, knownSize, lengthCompare, lengthCompare, map, prepended, reverse, reversed, reverseIterator, search, search, stepper, view, view
      • Methods inherited from interface scala.collection.Iterable

        coll, collectionClassName, lazyZip, seq, toIterable
      • Methods inherited from interface scala.collection.IterableOnceOps

        $colon$bslash, $div$colon, addString, addString, addString, aggregate, collectFirst, copyToArray, copyToBuffer, corresponds, count, exists, find, fold, foldLeft, forall, hasDefiniteSize, max, maxBy, maxByOption, maxOption, min, minBy, minByOption, minOption, mkString, mkString, mkString, nonEmpty, product, reduce, reduceLeft, reduceLeftOption, reduceOption, reduceRight, reduceRightOption, sum, to, toBuffer, toIterator, toList, toMap, toSet, toStream, toVector
      • Methods inherited from interface scala.collection.IterableOps

        $plus$plus, companion, groupBy, groupMap, groupMapReduce, inits, isTraversableAgain, lastOption, repr, scan, scanRight, sizeIs, sliding, sliding, tails, toTraversable, transpose, withFilter, zipAll
      • Methods inherited from interface scala.PartialFunction

        andThen, andThen, applyOrElse, compose, elementWise, isDefinedAt, lift, orElse, runWith, unapply
      • Methods inherited from interface scala.collection.immutable.Seq

        toSeq
      • Methods inherited from interface scala.collection.Seq

        equals, hashCode
      • Methods inherited from interface scala.collection.SeqOps

        $colon$plus, $colon$plus$plus, $plus$colon, $plus$plus$colon, combinations, concat, contains, containsSlice, corresponds, distinct, endsWith, findLast, indexOf, indexOfSlice, indexOfSlice, indexWhere, indices, isDefinedAt, lastIndexOf, lastIndexOf$default$2, lastIndexOfSlice, lastIndexOfSlice, lastIndexWhere, lastIndexWhere, length, lengthIs, occCounts, permutations, prefixLength, reverseMap, scala$collection$SeqOps$$toGenericSeq, segmentLength, segmentLength, size, sizeCompare, sizeCompare, sortBy, sortWith, startsWith, startsWith$default$2, union
      • Methods inherited from interface scala.collection.StrictOptimizedIterableOps

        collect, filter, filterImpl, filterNot, flatMap, flatten, map, partition, partitionMap, scanLeft, strictOptimizedCollect, strictOptimizedConcat, strictOptimizedFlatMap, strictOptimizedFlatten, strictOptimizedMap, strictOptimizedZip, tapEach, unzip, unzip3, zip, zipWithIndex
      • Methods inherited from interface scala.collection.immutable.StrictOptimizedSeqOps

        distinctBy, patch, sorted, updated
      • Methods inherited from interface scala.collection.StrictOptimizedSeqOps

        appended, appendedAll, diff, intersect, padTo, prepended, prependedAll
    • Constructor Detail

      • ByteString

        public ByteString()
    • Method Detail

      • fromInts

        public static ByteString fromInts​(int... array)
        JAVA API Creates a new ByteString by copying an int array by converting from integral numbers to bytes.
      • fromArray

        public static ByteString fromArray​(byte[] array)
        Creates a new ByteString by copying a byte array.
      • fromArrayUnsafe

        public static ByteString fromArrayUnsafe​(byte[] array)
        Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.

        Creates a ByteString without copying the passed in byte array, unlike other factory methods defined on ByteString. This method of creating a ByteString saves one array copy and allocation and therefore can lead to better performance, however it also means that one MUST NOT modify the passed in array, or unexpected immutable data structure contract-breaking behavior will manifest itself.

        This API is intended for users who have obtained an byte array from some other API, and want wrap it into an ByteArray, and from there on only use that reference (the ByteString) to operate on the wrapped data. For all other intents and purposes, please use the usual apply and create methods - which provide the immutability guarantees by copying the array.

      • fromArray

        public static ByteString fromArray​(byte[] array,
                                           int offset,
                                           int length)
        Creates a new ByteString by copying length bytes starting at offset from an Array.
      • fromArrayUnsafe

        public static ByteString fromArrayUnsafe​(byte[] array,
                                                 int offset,
                                                 int length)
        Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.

        Creates a ByteString without copying the passed in byte array, unlike other factory methods defined on ByteString. This method of creating a ByteString saves one array copy and allocation and therefore can lead to better performance, however it also means that one MUST NOT modify the passed in array, or unexpected immutable data structure contract-breaking behavior will manifest itself.

        This API is intended for users who have obtained an byte array from some other API, and want wrap it into an ByteArray, and from there on only use that reference (the ByteString) to operate on the wrapped data. For all other intents and purposes, please use the usual apply and create methods - which provide the immutability guarantees by copying the array.

      • fromInts

        public static ByteString fromInts​(scala.collection.immutable.Seq<java.lang.Object> array)
        JAVA API Creates a new ByteString by copying an int array by converting from integral numbers to bytes.
      • fromString

        public static ByteString fromString​(java.lang.String string)
        Creates a new ByteString which will contain the UTF-8 representation of the given String
      • fromString

        public static ByteString fromString​(java.lang.String string,
                                            java.lang.String charset)
        Creates a new ByteString which will contain the representation of the given String in the given charset
      • fromString

        public static ByteString fromString​(java.lang.String string,
                                            java.nio.charset.Charset charset)
        Creates a new ByteString which will contain the representation of the given String in the given charset
      • UTF_8

        public static java.lang.String UTF_8()
        Standard "UTF-8" charset
      • fromByteBuffer

        public static ByteString fromByteBuffer​(java.nio.ByteBuffer buffer)
        Creates a new ByteString by copying bytes out of a ByteBuffer.
      • emptyByteString

        public static ByteString emptyByteString()
        Java API
      • fromSpecific

        protected ByteString fromSpecific​(scala.collection.IterableOnce<java.lang.Object> coll)
        Specified by:
        fromSpecific in interface scala.collection.IterableFactoryDefaults<java.lang.Object,​scala.collection.Iterable>
        Specified by:
        fromSpecific in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • newSpecificBuilder

        protected scala.collection.mutable.Builder<java.lang.Object,​ByteString> newSpecificBuilder()
        Specified by:
        newSpecificBuilder in interface scala.collection.IterableFactoryDefaults<java.lang.Object,​scala.collection.Iterable>
        Specified by:
        newSpecificBuilder in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • empty

        public ByteString empty()
        Specified by:
        empty in interface scala.collection.IterableFactoryDefaults<java.lang.Object,​scala.collection.Iterable>
        Specified by:
        empty in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • apply

        public abstract byte apply​(int idx)
        Specified by:
        apply in interface scala.collection.SeqOps<java.lang.Object,​scala.collection.Seq,​scala.collection.Seq<java.lang.Object>>
      • className

        public final java.lang.String className()
        Specified by:
        className in interface scala.collection.Iterable<java.lang.Object>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        isEmpty in interface scala.collection.SeqOps<java.lang.Object,​scala.collection.Seq,​scala.collection.Seq<java.lang.Object>>
      • iterator

        public ByteIterator iterator()
        Specified by:
        iterator in interface scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>
        Specified by:
        iterator in interface scala.collection.IterableOnce<java.lang.Object>
      • head

        public byte head()
        Specified by:
        head in interface scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>
        Specified by:
        head in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • tail

        public ByteString tail()
        Specified by:
        tail in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • last

        public byte last()
        Specified by:
        last in interface scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>
        Specified by:
        last in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • init

        public ByteString init()
        Specified by:
        init in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • take

        public ByteString take​(int n)
        Specified by:
        take in interface scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>
        Specified by:
        take in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        take in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • takeRight

        public ByteString takeRight​(int n)
        Specified by:
        takeRight in interface scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>
        Specified by:
        takeRight in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        takeRight in interface scala.collection.StrictOptimizedIterableOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​ByteString>
      • slice

        public ByteString slice​(int from,
                                int until)
        Specified by:
        slice in interface scala.collection.immutable.IndexedSeqOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​scala.collection.immutable.IndexedSeq<java.lang.Object>>
        Specified by:
        slice in interface scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>
        Specified by:
        slice in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        slice in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • drop

        public ByteString drop​(int n)
        Specified by:
        drop in interface scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>
        Specified by:
        drop in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        drop in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • dropRight

        public ByteString dropRight​(int n)
        Specified by:
        dropRight in interface scala.collection.IndexedSeqOps<java.lang.Object,​scala.collection.IndexedSeq,​scala.collection.IndexedSeq<java.lang.Object>>
        Specified by:
        dropRight in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        dropRight in interface scala.collection.StrictOptimizedIterableOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​ByteString>
      • takeWhile

        public ByteString takeWhile​(scala.Function1<java.lang.Object,​java.lang.Object> p)
        Specified by:
        takeWhile in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        takeWhile in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • dropWhile

        public ByteString dropWhile​(scala.Function1<java.lang.Object,​java.lang.Object> p)
        Specified by:
        dropWhile in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        dropWhile in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • span

        public scala.Tuple2<ByteString,​ByteString> span​(scala.Function1<java.lang.Object,​java.lang.Object> p)
        Specified by:
        span in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        span in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        span in interface scala.collection.StrictOptimizedIterableOps<java.lang.Object,​scala.collection.immutable.IndexedSeq,​ByteString>
      • splitAt

        public scala.Tuple2<ByteString,​ByteString> splitAt​(int n)
        Specified by:
        splitAt in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
        Specified by:
        splitAt in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • indexWhere

        public int indexWhere​(scala.Function1<java.lang.Object,​java.lang.Object> p,
                              int from)
        Specified by:
        indexWhere in interface scala.collection.SeqOps<java.lang.Object,​scala.collection.Seq,​scala.collection.Seq<java.lang.Object>>
      • indexOf

        public <B> int indexOf​(B elem,
                               int from)
        Specified by:
        indexOf in interface scala.collection.SeqOps<java.lang.Object,​scala.collection.Seq,​scala.collection.Seq<java.lang.Object>>
      • grouped

        public scala.collection.Iterator<ByteString> grouped​(int size)
        Specified by:
        grouped in interface scala.collection.IterableOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • toString

        public java.lang.String toString()
        Specified by:
        toString in interface scala.Function1<java.lang.Object,​java.lang.Object>
        Specified by:
        toString in interface scala.collection.Iterable<java.lang.Object>
        Specified by:
        toString in interface scala.collection.Seq<java.lang.Object>
        Overrides:
        toString in class java.lang.Object
      • toArray

        protected byte[] toArray()
        Java API: copy this ByteString into a fresh byte array

        Returns:
        this ByteString copied into a byte array
      • toArray

        public final <B> java.lang.Object toArray​(scala.reflect.ClassTag<B> arg0)
        Specified by:
        toArray in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • copyToArray

        public final <B> int copyToArray​(java.lang.Object xs,
                                         int start)
        Specified by:
        copyToArray in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • copyToArray

        public <B> int copyToArray​(java.lang.Object xs,
                                   int start,
                                   int len)
        Specified by:
        copyToArray in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • toArrayUnsafe

        public byte[] toArrayUnsafe()
        Unsafe API: Use only in situations you are completely confident that this is what you need, and that you understand the implications documented below.

        If the ByteString is backed by a single array it is returned without any copy. If it is backed by a rope of multiple ByteString instances a new array will be allocated and the contents will be copied into it before returning it.

        This method of exposing the bytes of a ByteString can save one array copy and allocation in the happy path scenario which can lead to better performance, however it also means that one MUST NOT modify the returned array, or unexpected immutable data structure contract-breaking behavior will manifest itself.

        This API is intended for users who need to pass the byte array to some other API, which will only read the bytes and never mutate then. For all other intents and purposes, please use the usual toArray method - which provide the immutability guarantees by copying the backing array.

      • foreach

        public <U> void foreach​(scala.Function1<java.lang.Object,​U> f)
        Specified by:
        foreach in interface scala.collection.IterableOnceOps<java.lang.Object,​scala.collection.Iterable,​scala.collection.Iterable>
      • $plus$plus

        public abstract ByteString $plus$plus​(ByteString that)
        Efficiently concatenate another ByteString.
      • concat

        public ByteString concat​(ByteString that)
        Java API: efficiently concatenate another ByteString.
      • copyToBuffer

        public abstract int copyToBuffer​(java.nio.ByteBuffer buffer)
        Copy as many bytes as possible to a ByteBuffer, starting from it's current position. This method will not overflow the buffer.

        Parameters:
        buffer - a ByteBuffer to copy bytes to
        Returns:
        the number of bytes actually copied
      • compact

        public abstract CompactByteString compact()
        Create a new ByteString with all contents compacted into a single, full byte array. If isCompact returns true, compact is an O(1) operation, but might return a different object with an optimized implementation.
      • isCompact

        public abstract boolean isCompact()
        Check whether this ByteString is compact in memory. If the ByteString is compact, it might, however, not be represented by an object that takes full advantage of that fact. Use compact to get such an object.
      • asByteBuffer

        public abstract java.nio.ByteBuffer asByteBuffer()
        Returns a read-only ByteBuffer that directly wraps this ByteString if it is not fragmented.
      • asByteBuffers

        public abstract scala.collection.immutable.Iterable<java.nio.ByteBuffer> asByteBuffers()
        Scala API: Returns an immutable Iterable of read-only ByteBuffers that directly wraps this ByteStrings all fragments. Will always have at least one entry.
      • getByteBuffers

        public java.lang.Iterable<java.nio.ByteBuffer> getByteBuffers()
        Java API: Returns an Iterable of read-only ByteBuffers that directly wraps this ByteStrings all fragments. Will always have at least one entry.
      • toByteBuffer

        public java.nio.ByteBuffer toByteBuffer()
        Creates a new ByteBuffer with a copy of all bytes contained in this ByteString.
      • utf8String

        public final java.lang.String utf8String()
        Decodes this ByteString as a UTF-8 encoded String.
      • decodeString

        public abstract java.lang.String decodeString​(java.lang.String charset)
        Decodes this ByteString using a charset to produce a String. If you have a Charset instance available, use decodeString(charset: java.nio.charset.Charset instead.
      • decodeString

        public abstract java.lang.String decodeString​(java.nio.charset.Charset charset)
        Decodes this ByteString using a charset to produce a String. Avoids Charset.forName lookup in String internals, thus is preferable to decodeString(charset: String).
      • decodeBase64

        public abstract ByteString decodeBase64()
      • encodeBase64

        public abstract ByteString encodeBase64()
        Returns a ByteString which is the Base64 representation of this ByteString
      • mapI

        public final ByteString mapI​(scala.Function1<java.lang.Object,​java.lang.Object> f)
        map method that will automatically cast Int back into Byte.
      • map

        public <A> ByteString map​(scala.Function1<java.lang.Object,​java.lang.Object> f)