Skip to main content

executorch_sys/
c_bridge.rs

1mod c_link {
2    #![allow(unused)]
3    #![allow(unused_imports)]
4    #![allow(clippy::upper_case_acronyms)]
5    #![allow(clippy::missing_safety_doc)]
6    #![allow(rustdoc::invalid_html_tags)]
7    #![allow(rustdoc::broken_intra_doc_links)]
8    #![allow(missing_docs)]
9    #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
10
11    include!(concat!(env!("OUT_DIR"), "/executorch_bindings.rs"));
12}
13pub use c_link::*;
14
15impl Copy for ET_Error {}
16impl Copy for ET_ScalarType {}
17impl Copy for ET_Tag {}
18impl Copy for ET_TensorShapeDynamism {}
19impl Copy for ET_ProgramHeaderStatus {}
20impl Copy for ET_ProgramVerification {}
21impl Copy for ET_MmapDataLoaderMlockConfig {}
22impl Copy for ET_ModuleLoadMode {}
23impl Copy for ET_DeviceType {}
24
25macro_rules! impl_ref_clone_copy {
26    ($name:ty) => {
27        impl Clone for $name {
28            fn clone(&self) -> Self {
29                *self
30            }
31        }
32        impl Copy for $name {}
33    };
34}
35
36// Ref and RefMut
37impl_ref_clone_copy!(ET_EValueRef);
38impl_ref_clone_copy!(ET_EValueRefMut);
39impl_ref_clone_copy!(ET_TensorRef);
40impl_ref_clone_copy!(ET_TensorRefMut);
41impl_ref_clone_copy!(ET_OptionalTensorRef);
42impl_ref_clone_copy!(ET_OptionalTensorRefMut);
43impl_ref_clone_copy!(ET_DataLoaderRefMut);
44impl_ref_clone_copy!(ET_EventTracerRefMut);
45
46// ArrayRef
47impl_ref_clone_copy!(ET_ArrayRefBool);
48impl_ref_clone_copy!(ET_ArrayRefChar);
49impl_ref_clone_copy!(ET_ArrayRefDimOrderType);
50impl_ref_clone_copy!(ET_ArrayRefEValue);
51impl_ref_clone_copy!(ET_ArrayRefEValuePtr);
52impl_ref_clone_copy!(ET_ArrayRefF64);
53impl_ref_clone_copy!(ET_ArrayRefI32);
54impl_ref_clone_copy!(ET_ArrayRefI64);
55impl_ref_clone_copy!(ET_ArrayRefOptionalTensor);
56impl_ref_clone_copy!(ET_ArrayRefSizesType);
57impl_ref_clone_copy!(ET_ArrayRefStridesType);
58impl_ref_clone_copy!(ET_ArrayRefTensor);
59impl_ref_clone_copy!(ET_ArrayRefU8);
60impl_ref_clone_copy!(ET_ArrayRefUsizeType);
61
62// Span
63impl_ref_clone_copy!(ET_SpanDevice);
64impl_ref_clone_copy!(ET_SpanI64);
65impl_ref_clone_copy!(ET_SpanOptionalTensor);
66impl_ref_clone_copy!(ET_SpanSpanU8);
67impl_ref_clone_copy!(ET_SpanTensor);
68impl_ref_clone_copy!(ET_SpanU8);
69
70impl_ref_clone_copy!(ET_Device);