Documentation

Batteries.Data.ByteSubarray

A subarray of a ByteArray.

Instances For

O(1). Get the size of a ByteSubarray.

Equations

O(1). Test if a ByteSubarray is empty.

Equations
@[inline]

O(1). Get the element at index i from the start of a ByteSubarray.

Equations
@[inline]

O(1). Pop the last element of a ByteSubarray.

Equations
  • self.pop = if h : self.start = self.stop then self else { array := self.array, start := self.start, stop := self.stop - 1, start_le_stop := , stop_le_array_size := }
@[inline]

O(1). Pop the first element of a ByteSubarray.

Equations
@[inline]
def Batteries.ByteSubarray.foldlM {m : Type u_1 → Type u_2} {β : Type u_1} [Monad m] (self : ByteSubarray) (f : βUInt8m β) (init : β) :
m β

Folds a monadic function over a ByteSubarray from left to right.

Equations
@[inline]
def Batteries.ByteSubarray.foldl {β : Type u_1} (self : ByteSubarray) (f : βUInt8β) (init : β) :
β

Folds a function over a ByteSubarray from left to right.

Equations
@[specialize #[]]
def Batteries.ByteSubarray.forIn {m : Type u_1 → Type u_2} {β : Type u_1} [Monad m] (self : ByteSubarray) (init : β) (f : UInt8βm (ForInStep β)) :
m β

Implementation of forIn for a ByteSubarray.

Equations
def Batteries.ByteSubarray.forIn.loop {m : Type u_1 → Type u_2} {β : Type u_1} [Monad m] (self : ByteSubarray) (f : UInt8βm (ForInStep β)) (i : Nat) (h : i self.size) (b : β) :
m β

Inner loop of the forIn implementation for ByteSubarray.

Equations

O(1). Coerce a byte array into a byte slice.

Equations
  • array.toByteSubarray = { array := array, start := 0, stop := array.size, start_le_stop := , stop_le_array_size := }