pub trait ToShmem: Sized {
// Required method
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>;
}Expand description
A type that can be copied into a SharedMemoryBuilder.
Required Methods§
Sourcefn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Clones this value into a form suitable for writing into a SharedMemoryBuilder.
If this value owns any heap allocations, they should be written into
builder so that the return value of this function can point to the
copy in the shared memory buffer.
The return type is wrapped in ManuallyDrop to make it harder to accidentally invoke the destructor of the value that is produced.
Returns a Result so that we can gracefully recover from unexpected content.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl ToShmem for TokenSerializationType
impl ToShmem for TokenSerializationType
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for bool
impl ToShmem for bool
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for f32
impl ToShmem for f32
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for f64
impl ToShmem for f64
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for i8
impl ToShmem for i8
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for i16
impl ToShmem for i16
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for i32
impl ToShmem for i32
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for i64
impl ToShmem for i64
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for isize
impl ToShmem for isize
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for u8
impl ToShmem for u8
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for u16
impl ToShmem for u16
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for u32
impl ToShmem for u32
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for u64
impl ToShmem for u64
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for ()
impl ToShmem for ()
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for usize
impl ToShmem for usize
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for SourceLocation
impl ToShmem for SourceLocation
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for SourcePosition
impl ToShmem for SourcePosition
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for UnicodeRange
Available on crate feature cssparser only.
impl ToShmem for UnicodeRange
Available on crate feature
cssparser only.fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for SmallBitVec
Available on crate feature smallbitvec only.
impl ToShmem for SmallBitVec
Available on crate feature
smallbitvec only.fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for Box<str>
impl ToShmem for Box<str>
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for CString
impl ToShmem for CString
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for String
impl ToShmem for String
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl ToShmem for NonZeroUsize
impl ToShmem for NonZeroUsize
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<A: 'static, B: 'static> ToShmem for ArcUnion<A, B>
Available on crate feature servo_arc only.
impl<A: 'static, B: 'static> ToShmem for ArcUnion<A, B>
Available on crate feature
servo_arc only.fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<H: ToShmem, T: ToShmem> ToShmem for Arc<HeaderSlice<H, T>>
Available on crate feature servo_arc only.
impl<H: ToShmem, T: ToShmem> ToShmem for Arc<HeaderSlice<H, T>>
Available on crate feature
servo_arc only.fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<Static: StaticAtomSet> ToShmem for Atom<Static>
Available on crate feature string_cache only.
impl<Static: StaticAtomSet> ToShmem for Atom<Static>
Available on crate feature
string_cache only.fn to_shmem(&self, _: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T> ToShmem for PhantomData<T>
impl<T> ToShmem for PhantomData<T>
fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem> ToShmem for Option<T>
impl<T: ToShmem> ToShmem for Option<T>
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem> ToShmem for Arc<T>
Available on crate feature servo_arc only.
impl<T: ToShmem> ToShmem for Arc<T>
Available on crate feature
servo_arc only.fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem> ToShmem for ThinVec<T>
Available on crate feature thin-vec only.
impl<T: ToShmem> ToShmem for ThinVec<T>
Available on crate feature
thin-vec only.fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem> ToShmem for Box<[T]>
impl<T: ToShmem> ToShmem for Box<[T]>
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem> ToShmem for Box<T>
impl<T: ToShmem> ToShmem for Box<T>
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem> ToShmem for Vec<T>
impl<T: ToShmem> ToShmem for Vec<T>
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem> ToShmem for Wrapping<T>
impl<T: ToShmem> ToShmem for Wrapping<T>
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem> ToShmem for Range<T>
impl<T: ToShmem> ToShmem for Range<T>
fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> Result<Self>
Source§impl<T: ToShmem, A: Array<Item = T>> ToShmem for SmallVec<A>
Available on crate feature smallvec only.
impl<T: ToShmem, A: Array<Item = T>> ToShmem for SmallVec<A>
Available on crate feature
smallvec only.