furiosa_visa_std/
lib.rs

1//! Virtual ISA standard library.
2
3#![expect(incomplete_features)]
4#![feature(adt_const_params)]
5#![feature(inherent_associated_types)]
6#![warn(missing_docs)]
7#![warn(missing_debug_implementations)]
8#![forbid(unused_must_use)]
9#![expect(clippy::type_complexity)]
10#![feature(register_tool)]
11#![register_tool(tcp)]
12
13mod array_vec;
14mod cast;
15mod context;
16pub mod diag;
17mod float;
18mod memory_tensor;
19mod raw_tensor;
20mod scalar;
21mod stream_tensor;
22mod tensor;
23mod tensor_state;
24mod tensor_view;
25mod vector_engine;
26
27pub mod runtime;
28
29pub use tokio::sync::OnceCell;
30
31// FIXME: `Cast` is exported at crate root (not just prelude) to help rust-analyzer
32// resolve the `Cast` trait bound in tensor's `cast()` methods.
33pub use cast::Cast;
34
35/// Prelude module that re-exports commonly used items.
36pub mod prelude {
37    pub use super::cast::{ContractionCast, FetchCast, StreamCast};
38    pub use super::{
39        array_vec::*, context::*, memory_tensor::*, raw_tensor::*, runtime::*, scalar::*, stream_tensor::*, tensor::*,
40    };
41    // Stage types are accessed via stage::Init, stage::Branch, etc.
42    pub use super::tensor_state::*;
43    pub use super::vector_engine::{alu::*, branch::*, layer::*, op::*, operand::*, scalar::*, stage, tensor::*};
44    pub use furiosa_mapping::*;
45    pub use furiosa_opt_macro::{device, i, m};
46}