Skip to main content

vihaco_cpu/
lib.rs

1// SPDX-FileCopyrightText: 2026 The vihaco Authors
2// SPDX-License-Identifier: MIT
3
4mod component;
5mod data;
6mod display;
7mod instruction;
8mod outcome;
9pub mod word;
10pub use component::CPUMessage;
11pub use data::CPU;
12pub use data::{RuntimeInstruction, SurfaceInstruction};
13pub use instruction::{SurfaceType, SurfaceValue};
14pub use outcome::StepOutcome;
15pub use word::{
16    Word, decode_bool, decode_f32, decode_f64, decode_function_ref, decode_heap_ref, decode_i32,
17    decode_i64, decode_string_id, decode_u32, decode_u64, encode_bool, encode_f32, encode_f64,
18    encode_function_ref, encode_heap_ref, encode_i32, encode_i64, encode_string_id, encode_u32,
19    encode_u64,
20};
21
22#[cfg(test)]
23mod tests {
24    use super::*;
25
26    #[test]
27    fn surface_instruction_implements_surface_marker() {
28        fn require_surface_instruction<T: vihaco::SurfaceInstruction>() {}
29
30        require_surface_instruction::<SurfaceInstruction>();
31    }
32}