# Bytes preserve arbitrary data, including zero bytes read from files or stdin.
fn add_suffix(value: Bytes) -> Bytes:
    let suffix: Bytes = bytes_from_text("!")
    return bytes_concat(value, suffix)

start:
    let source: Bytes = bytes_from_text("YAZA")
    let content: Bytes = add_suffix(source)
    let path: Text = path_join(temp_directory(), "yaza-bytes-example.bin")
    file_write_bytes(path, content)

    let loaded: Bytes = file_read_bytes(path)
    assert bytes_equal(content, loaded)
    let range: Bytes = file_read_bytes_range(path, 1, 2)
    assert bytes_equal(range, bytes_from_text("AZ"))
    say "Bytes length:"
    say number_text(bytes_length(loaded))
    say "First byte:"
    say number_text(bytes_get(loaded, 0))
    file_remove(path)
