1#![cfg_attr(not(feature = "std"), no_std)]
6#![allow(unused_parens)]
7#![allow(unused_imports)]
8#![allow(dead_code)]
9#![allow(unused_attributes)]
10#![allow(rustdoc::invalid_rust_codeblocks)]
11#![cfg_attr(verus_keep_ghost, feature(core_intrinsics))]
12#![cfg_attr(any(verus_keep_ghost, feature = "allocator"), feature(allocator_api))]
13#![cfg_attr(verus_keep_ghost, feature(step_trait))]
14#![cfg_attr(verus_keep_ghost, feature(ptr_metadata))]
15#![cfg_attr(verus_keep_ghost, feature(sized_hierarchy))]
16#![cfg_attr(verus_keep_ghost, feature(freeze))]
17#![cfg_attr(verus_keep_ghost, feature(derive_clone_copy))]
18#![cfg_attr(verus_keep_ghost, feature(derive_eq))]
19#![cfg_attr(all(feature = "alloc", verus_keep_ghost), feature(liballoc_internals))]
20#![cfg_attr(verus_keep_ghost, feature(new_range_api))]
21
22#[cfg(feature = "alloc")]
23extern crate alloc;
24
25pub mod arithmetic;
26pub mod array;
27pub mod atomic;
28pub mod atomic_ghost;
29pub mod bits;
30pub mod bytes;
31pub mod calc_macro;
32pub mod cell;
33pub mod compute;
34pub mod contrib;
35pub mod float;
36pub mod function;
37#[cfg(all(feature = "alloc", feature = "std"))]
38pub mod hash_map;
39#[cfg(all(feature = "alloc", feature = "std"))]
40pub mod hash_set;
41pub mod invariant;
42#[cfg(verus_keep_ghost)]
43pub mod laws_cmp;
44#[cfg(verus_keep_ghost)]
45pub mod laws_eq;
46pub mod layout;
47pub mod logatom;
48pub mod map;
49pub mod map_lib;
50pub mod math;
51pub mod modes;
52pub mod multiset;
53pub mod multiset_lib;
54pub mod pcm;
55pub mod pcm_lib;
56pub mod pervasive;
57pub mod proph;
58pub mod raw_ptr;
59pub mod relations;
60pub mod rwlock;
61pub mod seq;
62pub mod seq_lib;
63pub mod set;
64pub mod set_lib;
65pub mod shared;
66#[cfg(feature = "alloc")]
67pub mod simple_pptr;
68pub mod slice;
69pub mod state_machine_internal;
70pub mod storage_protocol;
71pub mod string;
72#[cfg(feature = "std")]
73pub mod thread;
74pub mod tokens;
75pub mod view;
76
77#[cfg(verus_keep_ghost)]
78pub mod std_specs;
79
80pub mod prelude;
83
84use prelude::*;
85
86verus! {
87
88#[cfg_attr(verus_keep_ghost, verifier::broadcast_use_by_default_when_this_crate_is_imported)]
89pub broadcast group group_vstd_default {
90 seq::group_seq_axioms,
94 seq_lib::group_seq_lib_default,
95 map::group_map_axioms,
96 set::group_set_axioms,
97 set_lib::group_set_lib_default,
98 multiset::group_multiset_axioms,
99 compute::all_spec_ensures,
100 function::group_function_axioms,
101 laws_eq::group_laws_eq,
102 laws_cmp::group_laws_cmp,
103 slice::group_slice_axioms,
107 array::group_array_axioms,
108 string::group_string_axioms,
109 raw_ptr::group_raw_ptr_axioms,
110 layout::group_layout_axioms,
111 std_specs::range::group_range_axioms,
115 std_specs::bits::group_bits_axioms,
116 std_specs::control_flow::group_control_flow_axioms,
117 std_specs::slice::group_slice_axioms,
118 #[cfg(feature = "alloc")]
122 std_specs::vec::group_vec_axioms,
123 #[cfg(feature = "alloc")]
124 std_specs::vecdeque::group_vec_dequeue_axioms,
125 #[cfg(all(feature = "alloc", feature = "std"))]
129 std_specs::hash::group_hash_axioms,
130}
131
132} #[cfg(not(verus_verify_core))]
136#[doc(hidden)]
137pub use crate as vstd;