ByteVector
sealed abstract class ByteVector extends BitwiseOperations[ByteVector, Long] with Ordered[ByteVector] with Serializable
An immutable vector of bytes, backed by a balanced binary tree of
chunks. Most operations are logarithmic in the depth of this tree,
including
operations return lazy views rather than copying any underlying bytes.
Use
chunks. Most operations are logarithmic in the depth of this tree,
including
++
, :+
, +:
, update
, and insert
. Where possible,operations return lazy views rather than copying any underlying bytes.
Use
copy
to copy all underlying bytes to a fresh, array-backed ByteVector
.Unless otherwise noted, operations follow the same naming as the scala
standard library collections, though this class does not extend any of the
standard scala collections. Use
to obtain a regular
standard library collections, though this class does not extend any of the
standard scala collections. Use
toIndexedSeq
, toSeq
, or toIterable
to obtain a regular
scala.collection
type.- Companion
- object
trait Serializable
trait Ordered[ByteVector]
trait Comparable[ByteVector]
class Object
trait Matchable
class Any
Document{}
Returns a new byte vector representing this vector's contents followed by the specified vector's contents.
Returns a vector of all bytes in this vector except the first
n
bytes.The resulting vector's size is
0 max (size - n)
.Returns a vector of all bytes in this vector except the last
n
bytes.The resulting vector's size is
0 max (size - n)
.Drops the longest prefix of this vector such that every byte of the prefix satisfies the specific predicate.
Returns a vector of the first
n
bytes of this vector.The resulting vector's size is
n min size
.Note: if an
n
-byte vector is required, use the acquire
method instead.- See also
- acquire
Returns a vector whose contents are the results of taking the first
n
bytes of this vector.If this vector does not contain at least
n
bytes, an error message is returned.- See also
- take
final def consume[A](n: Long)(decode: ByteVector => Either[String, A]): Either[String, (ByteVector, A)]
Consumes the first
resulting in a vector of the remaining bytes and the decoded value. If this vector
does not have
n
bytes of this vector and decodes them with the specified function,resulting in a vector of the remaining bytes and the decoded value. If this vector
does not have
n
bytes or an error occurs while decoding, an error is returned instead.Applies a binary operator to a start value and all elements of this vector, going left to right.
- Value Params
- f
-
operator to apply
- z
-
starting value
Applies a binary operator to a start value and all elements of this vector, going right to left.
- Value Params
- f
-
operator to apply
- z
-
starting value
Applies a binary operator to a start value and all segments(views) of this ByteVector expressed as read-only ByteBuffer, going left to right.
- Value Params
- f
-
operator to apply
- z
-
Starting value
Applies a binary operator to a start value and all segments(views) of this ByteVector expressed as read-only ByteBuffer, going right ot left.
- Value Params
- f
-
operator to apply
- z
-
Starting value
Finds the first index of the specified byte pattern in this vector.
- Returns
-
index of slice or -1 if not found
Finds the first index after
from
of the specified byte pattern in this vector.- Returns
-
index of slice or -1 if not found
Returns an
n
-byte vector whose contents are this vector's contents followed by 0 or more zero bytes.- Throws
- IllegalArgumentException
- IllegalArgumentException
Returns an
n
-bytes vector whose contents are 0 or more zero bytes followed by this vector's contents.- Throws
- IllegalArgumentException
- IllegalArgumentException
Returns a vector where each byte is the result of applying the specified function to the corresponding byte in this vector.
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
Returns a vector where each byte is the result of applying the specified function to the corresponding byte in this vector.
Only the least significant byte is used (the three most significant bytes are ignored).
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
Only the least significant byte is used (the three most significant bytes are ignored).
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
Returns a vector with the bytes of this vector in reverse order.
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
Returns a vector with the same contents but represented as a single tree node internally.
This may involve copying data, but has the advantage that lookups index directly into a single
node rather than traversing a logarithmic number of nodes in this tree.
node rather than traversing a logarithmic number of nodes in this tree.
Calling this method on an already compacted vector is a no-op.
Returns a vector with the same contents as this vector but with a single compacted node made up
by evaluating all internal nodes and concatenating their values.
by evaluating all internal nodes and concatenating their values.
Copies as many bytes as possible to the given ByteBuffer, starting from its
current position. This method will not overflow the buffer.
current position. This method will not overflow the buffer.
- Value Params
- buffer
-
a ByteBuffer to copy bytes to
- Returns
-
the number of bytes actually copied
Allocate (unobservable) mutable scratch space at the end of this
of small vectors. A default chunk size is used.
ByteVector
, which will be used to support fast :+
and ++
of small vectors. A default chunk size is used.
Note that
are guaranteed to return another buffered
:+
, ++
, and drop
on the result of a call to buffer
are guaranteed to return another buffered
ByteVector
.Allocate (unobservable) mutable scratch space at the end of this
support fast
ByteVector
, with chunks of the given size, which will be used tosupport fast
:+
and ++
of small vectors.Note that
are guaranteed to return another buffered
same size scratch space.
:+
, ++
, and drop
on the result of a call to buffer
are guaranteed to return another buffered
ByteVector
, with thesame size scratch space.
Represents the contents of this vector as a read-only
java.nio.ByteBuffer
.The returned buffer is read-only with limit set to the minimum number of bytes needed to
represent the contents of this vector, position set to zero, and remaining set to the limit.
represent the contents of this vector, position set to zero, and remaining set to the limit.
Converts the contents of this vector to a byte.
- Value Params
- signed
-
whether sign extension should be performed
- Throws
- IllegalArgumentException
- IllegalArgumentException
Converts the contents of this vector to a short.
- Value Params
- ordering
-
order bytes should be processed in
- signed
-
whether sign extension should be performed
- Throws
- IllegalArgumentException
- IllegalArgumentException
Converts the contents of this vector to an int.
- Value Params
- ordering
-
order bytes should be processed in
- signed
-
whether sign extension should be performed
- Throws
- IllegalArgumentException
- IllegalArgumentException
Converts the contents of this vector to an int.
- Value Params
- ordering
-
order bytes should be processed in
- signed
-
whether sign extension should be performed
- Throws
- IllegalArgumentException
- IllegalArgumentException
Converts the contents of this byte vector to a UUID.
- Throws
- IllegalArgumentException
- IllegalArgumentException
Returns a new vector where each byte is the result of evaluating the specified function
against the bytes of this vector and the specified vector at the corresponding index.
The resulting vector has size
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
against the bytes of this vector and the specified vector at the corresponding index.
The resulting vector has size
this.size min other.size
.This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
final def zipWith2(other: ByteVector, other2: ByteVector)(f: (Byte, Byte, Byte) => Byte): ByteVector
final def zipWith3(other: ByteVector, other2: ByteVector, other3: ByteVector)(f: (Byte, Byte, Byte, Byte) => Byte): ByteVector
Returns a new vector where each byte is the result of evaluating the specified function
against the bytes of this vector and the specified vector at the corresponding index.
The resulting vector has size
Only the least significant byte is used (the three most significant bytes are ignored).
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
against the bytes of this vector and the specified vector at the corresponding index.
The resulting vector has size
this.size min other.size
.Only the least significant byte is used (the three most significant bytes are ignored).
This method returns a view and hence, is O(1). Call compact to generate a new strict vector.
final def zipWithI2(other: ByteVector, other2: ByteVector)(op: (Byte, Byte, Byte) => Int): ByteVector
final def zipWithI3(other: ByteVector, other2: ByteVector, other3: ByteVector)(op: (Byte, Byte, Byte, Byte) => Int): ByteVector
Compresses this vector using ZLIB.
- Value Params
- chunkSize
-
buffer size, in bytes, to use when compressing
- level
-
compression level, 0-9, with 0 disabling compression and 9 being highest level of compression -- see
java.util.zip.Deflater
for details - nowrap
-
if true, ZLIB header and checksum will not be used
- strategy
-
compression strategy -- see
java.util.zip.Deflater
for details
Decompresses this vector using ZLIB.
- Value Params
- chunkSize
-
buffer size, in bytes, to use when compressing
- nowrap
-
if true, will assume no ZLIB header and checksum
final def encrypt(ci: Cipher, key: Key, aparams: Option[AlgorithmParameters])(sr: SecureRandom): Either[GeneralSecurityException, ByteVector]
Encrypts this byte vector using the specified cipher and key.
- Value Params
- aparams
-
optional algorithm paramaters used for encryption (e.g., initialization vector)
- ci
-
cipher to use for encryption
- key
-
key to encrypt with
- sr
-
secure random
final def decrypt(ci: Cipher, key: Key, aparams: Option[AlgorithmParameters])(sr: SecureRandom): Either[GeneralSecurityException, ByteVector]
Decrypts this byte vector using the specified cipher and key.
- Value Params
- aparams
-
optional algorithm paramaters used for decryption (e.g., initialization vector)
- ci
-
cipher to use for decryption
- key
-
key to decrypt with
- sr
-
secure random
Returns true if the specified value is a
ByteVector
with the same contents as this vector.- See also
- Definition Classes
- Any
Display the size and bytes of this
For bit vectors beyond a certain size, only a hash of the
contents are shown.
ByteVector
.For bit vectors beyond a certain size, only a hash of the
contents are shown.
- Definition Classes
- Any
Returns a bitwise implication of this value with the specified value.
The resulting value's size is the minimum of this value's size and the specified value's size.
- Inhertied from
- BitwiseOperations
Returns a bitwise NAND of this value with the specified value.
The resulting value's size is the minimum of this value's size and the specified value's size.
- Inhertied from
- BitwiseOperations
Returns a bitwise NOR of this value with the specified value.
The resulting value's size is the minimum of this value's size and the specified value's size.
- Inhertied from
- BitwiseOperations
Returns a bitwise OR of this value with the specified value.
The resulting value's size is the minimum of this value's size and the specified value's size.
- Inhertied from
- BitwiseOperations
Returns a value of the same size with each bit shifted to the right
n
bits where the n
left-most bits are low.- Inhertied from
- BitwiseOperations
Returns a bitwise if-and-only-if of this value with the specified value.
The resulting value's size is the minimum of this value's size and the specified value's size.
- Inhertied from
- BitwiseOperations
Returns a bitwise XOR of this value with the specified value.
The resulting value's size is the minimum of this value's size and the specified value's size.
- Inhertied from
- BitwiseOperations
Returns a bitwise AND of this value with the specified value.
The resulting value's size is the minimum of this value's size and the specified value's size.
- Inhertied from
- BitwiseOperations
Returns a value of the same size with each bit shifted to the left
n
bits.- Inhertied from
- BitwiseOperations
Returns a value of the same size with each bit shifted to the right
n
bits where the n
left-most bits are sign extended.- Inhertied from
- BitwiseOperations