java.lang.Object
org.kink_lang.kink.HostResultCore
org.kink_lang.kink.Val
org.kink_lang.kink.BinVal
- All Implemented Interfaces:
Comparable<BinVal>,HostResult
A bin val, which represents an immutable array of bytes.
A bin val holds Java byte arrays as a binary tree in order to avoid allocation of the entire array on concatenation. The byte array is substantiated on demand.
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionbyte[]bytes()Returns the copied bytes of the bin.intReturns a negative number ifthisis less thanarg, 0 ifthisis equivalent toarg, or a positive number ifthisis greater thanarg.Returns a bin val which concatenatesthisandtail.booleanReturns true if and only ifargis a bin val and has the same vm and the equivalent bytes withthis.byteget(int ind) Returns the byte at the ind.inthashCode()intsize()Returns the size of the bin.slice(int from, int to) Returns a sliced bin betweenfrom(inclusive) andto(exclusive).toString()Methods inherited from class org.kink_lang.kink.Val
getVar, getVarSymHandleSet, hasVar, identity, makeHostResultCore, setVar
-
Method Details
-
size
public int size()Returns the size of the bin.- Returns:
- the size of the bin.
-
bytes
public byte[] bytes()Returns the copied bytes of the bin.- Returns:
- the copied bytes of the bin.
-
get
public byte get(int ind) Returns the byte at the ind.- Parameters:
ind- the index of the byte.- Returns:
- the byte at the ind.
- Throws:
IndexOutOfBoundsException- ifindis out of the range of the bin.
-
slice
Returns a sliced bin betweenfrom(inclusive) andto(exclusive).- Parameters:
from- the inclusive index where the result is sliced from.to- the exclusive index where the result is sliced to.- Returns:
- a sliced bin.
- Throws:
IndexOutOfBoundsException- iffromortoare out of the range of the bin.IllegalArgumentException- iffromis larger thanto.
-
compareTo
Returns a negative number ifthisis less thanarg, 0 ifthisis equivalent toarg, or a positive number ifthisis greater thanarg.Comparison is done for the bytes of
thisandarg, treating the bytes as unsigned numbers.Comparison is agnostic with
vmfield.- Specified by:
compareToin interfaceComparable<BinVal>- Parameters:
arg- the arg bin to compare with.- Returns:
- the comparison number.
-
concat
Returns a bin val which concatenatesthisandtail.- Parameters:
tail- the bin which is appended to the result.- Returns:
- a bin val which concatenates
thisandtail.
-
equals
Returns true if and only ifargis a bin val and has the same vm and the equivalent bytes withthis. -
hashCode
public int hashCode() -
toString
-