pub(crate) struct SyncPhysicalRectAu(PhysicalRect<AtomicI32>);Expand description
A PhysicalRect<Au> with shared mutablitiy
It is based on AtomicI32 but is not atomic itself: there is no protection against tearing:
If multiple threads are calling set(), the rectangle may end up with some fields from one call
and some fields from another call.
Compared to AtomicRefCell<PhysicalRect<Au>>:
- Both are meant for uses where despite shared ownership, no concurrency is expected in practice.
- If concurrent access does unexpectedly happen
AtomicRefCellwill panic, whereasSyncPhysicalRectAucan tear and result in invalid/inconsistent data. SyncPhysicalRectAuhas no space overhead,AtomicRefCellstores anAtomicUsizeborrow flagSyncPhysicalRectAuuses relaxed atomic access for each field separately
Tuple Fields§
§0: PhysicalRect<AtomicI32>Implementations§
Source§impl SyncPhysicalRectAu
impl SyncPhysicalRectAu
pub(crate) fn new(rect: PhysicalRect<Au>) -> Self
pub(crate) fn get(&self) -> PhysicalRect<Au>
pub(crate) fn set(&self, new_rect: PhysicalRect<Au>)
pub(crate) fn origin(&self) -> PhysicalPoint<Au>
pub(crate) fn size(&self) -> PhysicalSize<Au>
pub(crate) fn set_origin(&self, new_origin: PhysicalPoint<Au>)
pub(crate) fn set_size(&self, new_size: PhysicalSize<Au>)
pub(crate) fn translate(&self, offset: PhysicalSize<Au>)
Trait Implementations§
Source§impl Debug for SyncPhysicalRectAu
impl Debug for SyncPhysicalRectAu
Source§impl Default for SyncPhysicalRectAu
impl Default for SyncPhysicalRectAu
Source§fn default() -> SyncPhysicalRectAu
fn default() -> SyncPhysicalRectAu
Returns the “default value” for a type. Read more
Source§impl MallocSizeOf for SyncPhysicalRectAu
impl MallocSizeOf for SyncPhysicalRectAu
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
Auto Trait Implementations§
impl !Freeze for SyncPhysicalRectAu
impl RefUnwindSafe for SyncPhysicalRectAu
impl Send for SyncPhysicalRectAu
impl Sync for SyncPhysicalRectAu
impl Unpin for SyncPhysicalRectAu
impl UnsafeUnpin for SyncPhysicalRectAu
impl UnwindSafe for SyncPhysicalRectAu
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
Source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
Source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
Source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert