pub struct RowTypeLayout {
pub layout: Layout,
pub elements: Arc<[ProductTypeElementLayout]>,
}Expand description
The type of a row, annotated with a Layout.
This type ensures that the minimum row size is adhered to.
Fields§
§layout: LayoutThe memoized layout of the product type.
elements: Arc<[ProductTypeElementLayout]>The fields of the product type with their own layout annotations.
This is Arced at the row type level
as clones and drops of this showed up in flamegraphs.
A RowTypeLayout will typically be cloned once per table per transaction,
assuming the table is touched during that transaction.
This can be expensive for modules that have a lot of reducer calls per second.
Implementations§
Source§impl RowTypeLayout
impl RowTypeLayout
Trait Implementations§
Source§impl Clone for RowTypeLayout
impl Clone for RowTypeLayout
Source§fn clone(&self) -> RowTypeLayout
fn clone(&self) -> RowTypeLayout
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RowTypeLayout
impl Debug for RowTypeLayout
Source§impl From<ProductType> for RowTypeLayout
impl From<ProductType> for RowTypeLayout
Source§fn from(ty: ProductType) -> Self
fn from(ty: ProductType) -> Self
Converts to this type from the input type.
Source§impl HasLayout for RowTypeLayout
impl HasLayout for RowTypeLayout
Source§impl Index<usize> for RowTypeLayout
impl Index<usize> for RowTypeLayout
Source§impl MemoryUsage for RowTypeLayout
impl MemoryUsage for RowTypeLayout
Source§fn heap_usage(&self) -> usize
fn heap_usage(&self) -> usize
The heap memory usage of this type. The default implementation returns 0.
Source§impl PartialEq for RowTypeLayout
impl PartialEq for RowTypeLayout
impl Eq for RowTypeLayout
impl StructuralPartialEq for RowTypeLayout
Auto Trait Implementations§
impl Freeze for RowTypeLayout
impl RefUnwindSafe for RowTypeLayout
impl Send for RowTypeLayout
impl Sync for RowTypeLayout
impl Unpin for RowTypeLayout
impl UnwindSafe for RowTypeLayout
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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 more