Builtin Types
Bitsy includes the following built-in types:
Word[n]
A Word[n] is an n-bit number.
It is nominally interpreted to be unsigned.
However, operators and functions may re-interpret it as a signed number or as a bitvector.
Vec[T, n]
A Vec[T, n] is an n-element vector of elements of a type S.
It’s values are written as [v1, v2, ..., vn].
For example, [1, 2, 3] is a value for Vec[Word[8], 3].
Valid[T]
A Valid[T] is a type for values which may or may not be valid.
If you have an expression t of type T, you can construct a Valid[T] with @Valid(t).
You can use @Invalid to construct a Valid[T] with no value.
You can use match expressions to get access to the payload inside Valid[T]:
mod Top {
incoming in of Valid[Word[8]];
outgoing out of Word[8];
match in {
@Valid(t) => t;
@Invalid => 0;
}
}