1#![no_std]
2#![cfg_attr(
3 target_arch = "spirv",
4 allow(internal_features),
5 feature(asm_experimental_arch, core_intrinsics, lang_items, repr_simd)
6)]
7#![deny(unsafe_code)]
13#![warn(
14 clippy::all,
15 clippy::await_holding_lock,
16 clippy::char_lit_as_u8,
17 clippy::checked_conversions,
18 clippy::dbg_macro,
19 clippy::debug_assert_with_mut_call,
20 clippy::doc_markdown,
21 clippy::empty_enum,
22 clippy::enum_glob_use,
23 clippy::exit,
24 clippy::expl_impl_clone_on_copy,
25 clippy::explicit_deref_methods,
26 clippy::explicit_into_iter_loop,
27 clippy::fallible_impl_from,
28 clippy::filter_map_next,
29 clippy::float_cmp_const,
30 clippy::fn_params_excessive_bools,
31 clippy::if_let_mutex,
32 clippy::implicit_clone,
33 clippy::imprecise_flops,
34 clippy::inefficient_to_string,
35 clippy::invalid_upcast_comparisons,
36 clippy::large_types_passed_by_value,
37 clippy::let_unit_value,
38 clippy::linkedlist,
39 clippy::lossy_float_literal,
40 clippy::macro_use_imports,
41 clippy::manual_ok_or,
42 clippy::map_err_ignore,
43 clippy::map_flatten,
44 clippy::map_unwrap_or,
45 clippy::match_same_arms,
46 clippy::match_wildcard_for_single_variants,
47 clippy::mem_forget,
48 clippy::mut_mut,
49 clippy::mutex_integer,
50 clippy::needless_borrow,
51 clippy::needless_continue,
52 clippy::option_option,
53 clippy::path_buf_push_overwrite,
54 clippy::ptr_as_ptr,
55 clippy::ref_option_ref,
56 clippy::rest_pat_in_fully_bound_structs,
57 clippy::same_functions_in_if_condition,
58 clippy::semicolon_if_nothing_returned,
59 clippy::string_add_assign,
60 clippy::string_add,
61 clippy::string_lit_as_bytes,
62 clippy::string_to_string,
63 clippy::todo,
64 clippy::trait_duplication_in_bounds,
65 clippy::unimplemented,
66 clippy::unnested_or_patterns,
67 clippy::unused_self,
68 clippy::useless_transmute,
69 clippy::verbose_file_reads,
70 clippy::zero_sized_map_values,
71 future_incompatible,
72 nonstandard_style,
73 rust_2018_idioms
74)]
75#![allow(
78 unsafe_code,
80 clippy::unimplemented,
83)]
84#![warn(missing_docs)]
85#![doc = include_str!("../README.md")]
86
87#[macro_use]
89pub extern crate spirv_std_macros as macros;
90pub use macros::spirv;
91pub use macros::{debug_printf, debug_printfln};
92
93pub mod arch;
94pub mod byte_addressable_buffer;
95pub mod debug_printf;
96pub mod float;
97pub mod image;
98pub mod indirect_command;
99pub mod matrix;
100pub mod memory;
101pub mod ray_tracing;
102mod runtime_array;
103mod sampler;
104mod scalar;
105mod scalar_or_vector;
106mod typed_buffer;
107mod vector;
108
109pub use self::sampler::Sampler;
110pub use crate::macros::Image;
111pub use byte_addressable_buffer::ByteAddressableBuffer;
112pub use num_traits;
113pub use runtime_array::*;
114pub use scalar::*;
115pub use scalar_or_vector::*;
116pub use typed_buffer::*;
117pub use vector::*;
118
119pub use glam;
120
121#[cfg(all(not(test), target_arch = "spirv"))]
122#[panic_handler]
123fn panic(_: &core::panic::PanicInfo<'_>) -> ! {
124 loop {}
125}
126
127#[cfg(all(not(test), target_arch = "spirv"))]
128#[lang = "eh_personality"]
129extern "C" fn rust_eh_personality() {}
130
131#[doc(hidden)]
133pub fn workaround_rustdoc_ice_84738() {}