ToExprHSSIRTypeFlat

scalus.compiler.sir.ToExprHSSIRTypeFlat

Note, that this hashconsedflat should not be resolved as given. It is used only as parameter to ToExprHS. Given HashConsedFlat[(something other then Module)] is a no-no.

Attributes

Graph
Supertypes
trait Flat[SIRType]
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

override def bitSizeHC(a: SIRType, encoderState: State): Int

Attributes

Definition Classes
override def decodeHC(decoderState: HashConsedDecoderState): SIRType

Attributes

Definition Classes
override def encodeHC(a: SIRType, encoderState: HashConsedEncoderState): Unit

Attributes

Definition Classes

Inherited methods

final override def bitSize(a: SIRType): Int

Exact size of the encoding of a in bits. Callers use it to size the EncoderState buffer, so it must never under-estimate.

Exact size of the encoding of a in bits. Callers use it to size the EncoderState buffer, so it must never under-estimate.

Attributes

Definition Classes
Inherited from:
HashConsedFlat
def decode(decode: DecoderState): SIRType

Reads an A, advancing decode past the bits it consumed.

Reads an A, advancing decode past the bits it consumed.

Decoding stops as soon as it has an A; it does not check for trailing input, so a caller that requires the whole buffer to be consumed must check that itself.

Attributes

Throws
FlatDecodingError

if the input is truncated or is not a valid encoding of A. Bytes from an untrusted source are expected to fail this way; any other exception is a defect.

Inherited from:
HashConsedFlat
final override def encode(a: SIRType, encoderState: EncoderState): Unit

Writes a into encode.

Writes a into encode.

The buffer does not grow, so it must already have room for bitSize bits. Failing that is a defect in this instance rather than a problem with a: an under-estimating bitSize overruns the buffer with an ArrayIndexOutOfBoundsException, and a negative size is rejected by EncoderState with an IllegalArgumentException. Use [[FlatCodec.encodeA*]] to get the sizing right.

Attributes

Definition Classes
Inherited from:
HashConsedFlat

Concrete fields

val paranoid: Boolean