bytes
Translation status: English reader-locale proof. Term names and code fences follow the en pack; supporting prose may still be English.
Primitive byte-buffer type.
Aliases: bytes
Syntax: bytes
Category#
type
Related#
Examples#
radix/corpus/octeti/octeti.fab (canonical · keyword)#
Primitive byte-buffer type.
# =============================================================================
# bytes — Primitive byte-buffer type.
# =============================================================================
#
# What this teaches:
# • Primitive buffer type — `bytes` is the built-in byte buffer, analogous to `Vec<u8>` in Rust.
# • Literal syntax — Byte buffers can be written with hex literals like `|ref call be ef|`.
#
# Common mistakes:
# • Writing bytes hex literals with an odd digit count — each byte requires two hex digits.
#
# See also: string, list
# =============================================================================
# bytes — byte-buffer type alias
#
# type Fascis = bytes
#
# GRAMMAR:
# typeAliasDecl :← 'type' ident '=' typeExpr
#
# EXPECTED OUTPUT:
# octeti.expected — type-known diagnostic.
type Fascis = bytes
main {
const bytes sig ← |ref call be ef|
const bytes hello ← |48 65 6c 6c 6f|
const bytes empty ← ||
print "octeti typus notus"
}Expected output:
octeti typus notus
radix/corpus/bounded/conversio-octeti-to-octeti-decline.fab (supporting · reject)#
Decline: bounded bytes<N> cannot resize directly to bounded bytes<M>.
# =============================================================================
# bounded bytes resize — unsupported conversion decline
# =============================================================================
#
# What this teaches:
# • Bounded byte capacities are not interchangeable through an implicit
# resize route.
# • The unsupported route fails closed with `SEM016:unsupported_conversio`.
#
# Common mistakes:
# • expecting a bounded byte conversion to truncate or pad silently.
fn resize(bytes<8> raw) → bytes<4> {
return raw ↦ bytes<4>
}Expected: compilation rejects this example.
radix/corpus/bounded/conversio-octeti-to-textus-decline.fab (supporting · reject)#
Decline: bounded bytes<N> cannot convert directly to unbounded string.
# =============================================================================
# bounded bytes to string — unsupported conversion decline
# =============================================================================
#
# What this teaches:
# • A bounded byte carrier does not silently become string through `↦`.
# • The unsupported route fails closed with `SEM016:unsupported_conversio`.
#
# Common mistakes:
# • assuming byte decoding is the same as a bounded-width copy — decoding
# needs an explicit bytes/textus library route, not this conversion.
fn widen(bytes<8> raw) → string {
return raw ↦ string
}Expected: compilation rejects this example.