#![cfg_attr(all(feature = "wgsl-in", feature = "glsl-out"), doc = "```")]
#![cfg_attr(not(all(feature = "wgsl-in", feature = "glsl-out")), doc = "```ignore")]
#![allow(
clippy::new_without_default,
clippy::unneeded_field_pattern,
clippy::match_like_matches_macro,
clippy::collapsible_if,
clippy::derive_partial_eq_without_eq,
clippy::needless_borrowed_reference,
clippy::single_match,
clippy::enum_variant_names
)]
#![warn(
trivial_casts,
trivial_numeric_casts,
unused_extern_crates,
unused_qualifications,
clippy::pattern_type_mismatch,
clippy::missing_const_for_fn,
clippy::rest_pat_in_fully_bound_structs,
clippy::match_wildcard_for_single_variants
)]
#![deny(clippy::exit)]
#![cfg_attr(
not(test),
warn(
clippy::dbg_macro,
clippy::panic,
clippy::print_stderr,
clippy::print_stdout,
clippy::todo
)
)]
#![no_std]
#[cfg(std)]
extern crate std;
extern crate alloc;
mod arena;
pub mod back;
pub mod common;
pub mod compact;
pub mod diagnostic_filter;
pub mod error;
pub mod front;
pub mod ir;
pub mod keywords;
mod non_max_u32;
mod path_like;
pub mod proc;
mod racy_lock;
mod span;
pub mod valid;
use alloc::string::String;
pub use crate::arena::{Arena, Handle, Range, UniqueArena};
pub use crate::span::{SourceLocation, Span, SpanContext, WithSpan};
pub use ir::*;
pub const BOOL_WIDTH: Bytes = 1;
pub const ABSTRACT_WIDTH: Bytes = 8;
pub type FastHashMap<K, T> =
hashbrown::HashMap<K, T, core::hash::BuildHasherDefault<rustc_hash::FxHasher>>;
pub type FastHashSet<K> =
hashbrown::HashSet<K, core::hash::BuildHasherDefault<rustc_hash::FxHasher>>;
pub type FastIndexSet<K> =
indexmap::IndexSet<K, core::hash::BuildHasherDefault<rustc_hash::FxHasher>>;
pub type FastIndexMap<K, V> =
indexmap::IndexMap<K, V, core::hash::BuildHasherDefault<rustc_hash::FxHasher>>;
pub(crate) type NamedExpressions = FastIndexMap<Handle<Expression>, String>;