Trait std::iter::TrustedRandomAccessNoCoerce
source · pub unsafe trait TrustedRandomAccessNoCoerce: Sized {
const MAY_HAVE_SIDE_EFFECT: bool;
// Provided method
fn size(&self) -> usize
where Self: Iterator { ... }
}
🔬This is a nightly-only experimental API. (
trusted_random_access
)Expand description
Like TrustedRandomAccess
but without any of the requirements / guarantees around
coercions to subtypes after __iterator_get_unchecked
(they aren’t allowed here!), and
without the requirement that subtypes / supertypes implement TrustedRandomAccessNoCoerce
.
This trait was created in PR #85874 to fix soundness issue #85873 without performance regressions.
It is subject to change as we might want to build a more generally useful (for performance
optimizations) and more sophisticated trait or trait hierarchy that replaces or extends
TrustedRandomAccess
and TrustedRandomAccessNoCoerce
.
Required Associated Constants§
sourceconst MAY_HAVE_SIDE_EFFECT: bool
const MAY_HAVE_SIDE_EFFECT: bool
🔬This is a nightly-only experimental API. (
trusted_random_access
)true
if getting an iterator element may have side effects.
Remember to take inner iterators into account.