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