unc_vm_types/
lib.rs

1//! This are the common types and utility tools for using WebAssembly
2//! in a Rust environment.
3//!
4//! This crate provides common structures such as `Type` or `Value`, type indexes
5//! and native function wrappers with `Func`.
6
7#![deny(missing_docs, unused_extern_crates)]
8#![warn(unused_import_braces)]
9#![deny(unstable_features)]
10#![allow(clippy::new_without_default)]
11#![warn(
12    clippy::float_arithmetic,
13    clippy::mut_mut,
14    clippy::nonminimal_bool,
15    clippy::map_unwrap_or,
16    clippy::print_stdout,
17    clippy::unicode_not_nfc,
18    clippy::use_self
19)]
20
21/// The `lib` module defines a `std` module that is identical whether
22/// the `core` or the `std` feature is enabled.
23pub mod lib {
24    /// Custom `std` module.
25    pub mod std {
26        pub use std::{
27            any, borrow, boxed, cell, cmp, convert, fmt, format, hash, iter, marker, mem, ops, ptr,
28            rc, slice, string, sync, u32, vec,
29        };
30    }
31}
32
33mod archives;
34mod extern_ref;
35mod features;
36mod indexes;
37mod initializers;
38mod memory_view;
39mod module;
40mod native;
41pub mod partial_sum_map;
42mod types;
43mod units;
44mod values;
45
46/// The entity module, with common helpers for Rust structures
47pub mod entity;
48pub use crate::extern_ref::{ExternRef, VMExternRef};
49pub use crate::features::Features;
50pub use crate::indexes::{
51    CustomSectionIndex, DataIndex, ElemIndex, ExportIndex, FunctionIndex, GlobalIndex, ImportIndex,
52    LocalFunctionIndex, LocalGlobalIndex, LocalMemoryIndex, LocalTableIndex, MemoryIndex,
53    SignatureIndex, TableIndex,
54};
55pub use crate::initializers::{
56    DataInitializer, DataInitializerLocation, OwnedDataInitializer, OwnedTableInitializer,
57};
58pub use crate::memory_view::{Atomically, MemoryView};
59pub use crate::module::{ImportCounts, ModuleInfo};
60pub use crate::native::{NativeWasmType, ValueType};
61pub use crate::units::{
62    Bytes, PageCountOutOfRange, Pages, WASM_MAX_PAGES, WASM_MIN_PAGES, WASM_PAGE_SIZE,
63};
64pub use crate::values::{Value, WasmValueType};
65pub use types::{
66    ExportType, ExternType, FastGasCounter, FunctionType, FunctionTypeRef, GlobalInit, GlobalType,
67    Import, InstanceConfig, MemoryType, Mutability, TableType, Type, V128,
68};
69
70pub use archives::ArchivableIndexMap;
71
72/// Version number of this crate.
73pub const VERSION: &str = env!("CARGO_PKG_VERSION");