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(strict_provenance_atomic_ptr))]
16#![cfg_attr(verus_keep_ghost, feature(freeze))]
17#![cfg_attr(verus_keep_ghost, feature(derive_clone_copy))]
18#![cfg_attr(all(feature = "alloc", verus_keep_ghost), feature(liballoc_internals))]
19#![cfg_attr(verus_keep_ghost, feature(new_range_api))]
20
21#[cfg(feature = "alloc")]
22extern crate alloc;
23
24pub mod arithmetic;
25pub mod array;
26pub mod atomic;
27pub mod atomic_ghost;
28pub mod bits;
29pub mod bytes;
30pub mod calc_macro;
31pub mod cell;
32pub mod compute;
33pub mod function;
34#[cfg(all(feature = "alloc", feature = "std"))]
35pub mod hash_map;
36#[cfg(all(feature = "alloc", feature = "std"))]
37pub mod hash_set;
38pub mod invariant;
39#[cfg(verus_keep_ghost)]
40pub mod laws_cmp;
41#[cfg(verus_keep_ghost)]
42pub mod laws_eq;
43pub mod layout;
44pub mod logatom;
45pub mod map;
46pub mod map_lib;
47pub mod math;
48pub mod modes;
49pub mod multiset;
50pub mod multiset_lib;
51pub mod pcm;
52pub mod pcm_lib;
53pub mod pervasive;
54pub mod proph;
55pub mod raw_ptr;
56pub mod relations;
57pub mod rwlock;
58pub mod seq;
59pub mod seq_lib;
60pub mod set;
61pub mod set_lib;
62pub mod shared;
63#[cfg(feature = "alloc")]
64pub mod simple_pptr;
65pub mod slice;
66pub mod state_machine_internal;
67pub mod storage_protocol;
68pub mod string;
69#[cfg(feature = "std")]
70pub mod thread;
71pub mod tokens;
72pub mod view;
73
74#[cfg(verus_keep_ghost)]
75pub mod std_specs;
76
77pub mod prelude;
80
81use prelude::*;
82
83verus! {
84
85#[cfg_attr(verus_keep_ghost, verifier::broadcast_use_by_default_when_this_crate_is_imported)]
86pub broadcast group group_vstd_default {
87 seq::group_seq_axioms,
91 seq_lib::group_seq_lib_default,
92 map::group_map_axioms,
93 set::group_set_axioms,
94 set_lib::group_set_lib_default,
95 multiset::group_multiset_axioms,
96 compute::all_spec_ensures,
97 function::group_function_axioms,
98 laws_eq::group_laws_eq,
99 laws_cmp::group_laws_cmp,
100 slice::group_slice_axioms,
104 array::group_array_axioms,
105 string::group_string_axioms,
106 raw_ptr::group_raw_ptr_axioms,
107 layout::group_layout_axioms,
108 std_specs::range::group_range_axioms,
112 std_specs::bits::group_bits_axioms,
113 std_specs::control_flow::group_control_flow_axioms,
114 std_specs::slice::group_slice_axioms,
115 #[cfg(feature = "alloc")]
119 std_specs::vec::group_vec_axioms,
120 #[cfg(feature = "alloc")]
121 std_specs::vecdeque::group_vec_dequeue_axioms,
122 #[cfg(all(feature = "alloc", feature = "std"))]
126 std_specs::hash::group_hash_axioms,
127}
128
129} #[cfg(not(verus_verify_core))]
133#[doc(hidden)]
134pub use crate as vstd;