#![cfg_attr(docs, feature(doc_auto_cfg))]
#![deny(rustdoc::broken_intra_doc_links)]
#![warn(
future_incompatible,
nonstandard_style,
rust_2018_idioms,
rust_2021_compatibility,
unused,
// missing_docs,
single_use_lifetimes,
trivial_casts,
trivial_numeric_casts,
// unreachable_pub,
unused_qualifications,
variant_size_differences
)]
#![doc = include_str!("../README.md")]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/teoxoy/encase/3d6d2e4d7670863e97463a15ceeafac6d13ee73e/logo.svg"
)]
pub use encase_derive::ShaderType;
#[macro_use]
mod utils;
mod core;
mod types;
mod impls;
pub use crate::core::{
CalculateSizeFor, DynamicStorageBuffer, DynamicUniformBuffer, ShaderSize, ShaderType,
StorageBuffer, UniformBuffer,
};
pub use types::runtime_sized_array::ArrayLength;
pub mod internal {
pub use super::core::{
AlignmentValue, BufferMut, BufferRef, CreateFrom, EnlargeError, Error, ReadContext,
ReadFrom, Reader, Result, SizeValue, WriteContext, WriteInto, Writer,
};
}
pub mod rts_array {
#[doc(inline)]
pub use super::impl_rts_array;
pub use super::types::runtime_sized_array::{Length, Truncate};
}
pub mod vector {
#[doc(inline)]
pub use super::impl_vector;
pub use super::types::vector::{
AsMutVectorParts, AsRefVectorParts, FromVectorParts, VectorScalar,
};
}
pub mod matrix {
#[doc(inline)]
pub use super::impl_matrix;
pub use super::types::matrix::{
AsMutMatrixParts, AsRefMatrixParts, FromMatrixParts, MatrixScalar,
};
}
#[doc(hidden)]
pub mod private {
pub use super::build_struct;
pub use super::core::AlignmentValue;
pub use super::core::BufferMut;
pub use super::core::BufferRef;
pub use super::core::CreateFrom;
pub use super::core::Metadata;
pub use super::core::ReadFrom;
pub use super::core::Reader;
pub use super::core::RuntimeSizedArray;
pub use super::core::SizeValue;
pub use super::core::WriteInto;
pub use super::core::Writer;
pub use super::types::array::ArrayMetadata;
pub use super::types::matrix::*;
pub use super::types::r#struct::StructMetadata;
pub use super::types::runtime_sized_array::{ArrayLength, Length, Truncate};
pub use super::types::vector::*;
pub use super::utils::consume_zsts;
pub use super::CalculateSizeFor;
pub use super::ShaderSize;
pub use super::ShaderType;
pub use const_panic::concat_assert;
}