bloqade_lanes_bytecode/ffi/
handles.rs1use std::ffi::CString;
2
3use bloqade_lanes_bytecode_core::arch::ArchSpec;
4use bloqade_lanes_bytecode_core::isa::Program;
5use bloqade_lanes_bytecode_core::isa::validate::ValidationError;
6
7pub struct LANESProgram {
9 pub(crate) inner: Program,
10}
11
12pub struct LANESArchSpec {
14 pub(crate) inner: ArchSpec,
15}
16
17pub struct LANESValidationErrors {
19 pub(crate) errors: Vec<ValidationError>,
20 pub(crate) messages: Vec<CString>,
21}
22
23impl LANESValidationErrors {
24 pub(crate) fn from_errors(errors: Vec<ValidationError>) -> Self {
25 let messages = errors
26 .iter()
27 .map(|e| CString::new(e.to_string()).unwrap_or_default())
28 .collect();
29 Self { errors, messages }
30 }
31}