Expand description
Verus specifications for the third-party smallvec crate, trusted as TCB from
inspection of the smallvec-1.15.0 source (src/lib.rs) and centralized here
rather than beside an OSTD caller. cpu/set.rs is currently the only consumer
(SmallVec<[u64; 2]>).
The model is a Seq<A::Item>: the views below equate every executed SmallVec
operation to a Seq operation, and Deref/DerefMut bridge to the std
[A::Item] slice so that indexing, len, and iter reuse vstd’s slice
specifications rather than being re-axiomatized.
Every operation below is guarded by obeys_smallvec_array::<A>
(see its documentation).
Allocation-growth panics (capacity overflow past isize::MAX) are noted on each
spec and, where a requires fits, excluded by that precondition;
SmallVec::reserve rounds the capacity up to the next power of two, so those
bounds use a factor of 2.
Structs§
- ExSmall
Vec - Opaque external wrapper for the owned small-vector type
SmallVec<A>. - ExSmall
VecInto Iter - Verus proxy for the owned
SmallVeciteratorsmallvec::IntoIter(mirrors the array-IntoIter precedent incrate::external::iter).
Traits§
- ExArray
- Verus declaration for
smallvec::Array; only the element typeItemis surfaced.
Functions§
- _verus_
external_ ⚠fn_ specification_ 46_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ new - _verus_
external_ ⚠fn_ specification_ 47_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ with__ capacity - _verus_
external_ ⚠fn_ specification_ 48_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ len - _verus_
external_ ⚠fn_ specification_ 49_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ index - _verus_
external_ ⚠fn_ specification_ 50_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ index__ mut - _verus_
external_ ⚠fn_ specification_ 51_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ push - _verus_
external_ ⚠fn_ specification_ 52_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ resize - _verus_
external_ ⚠fn_ specification_ 53_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ as__ slice - _verus_
external_ ⚠fn_ specification_ 54_ Small Vec_ 32__ 58__ 58__ 32__ 60__ 32_ A_ 32__ 62__ 32__ 58__ 58__ 32_ as__ mut__ slice - _verus_
external_ ⚠fn_ specification_ 55__ 60__ 32_ Small Vec_ 32__ 60__ 32_ A_ 32__ 62__ 32_ as_ 32_ Deref_ 32__ 62__ 32__ 58__ 58__ 32_ deref - _verus_
external_ ⚠fn_ specification_ 56__ 60__ 32_ Small Vec_ 32__ 60__ 32_ A_ 32__ 62__ 32_ as_ 32_ Deref Mut_ 32__ 62__ 32__ 58__ 58__ 32_ deref__ mut - _verus_
external_ ⚠fn_ specification_ 57__ 60__ 32_ Small Vec_ 32__ 60__ 32_ A_ 32__ 62__ 32_ as_ 32_ Into Iterator_ 32__ 62__ 32__ 58__ 58__ 32_ into__ iter - axiom_
smallvec_ array_ size_ of_ array - axiom_
smallvec_ from_ iter_ ensures - axiom_
smallvec_ index_ req - group_
smallvec_ models - lemma_
smallvec_ array_ atomic_ u64_ 2 - lemma_
smallvec_ array_ u64_ 2 - obeys_
smallvec_ array - smallvec_
array_ size - smallvec_
view