Struct timely_container::flatcontainer::OwnedRegion
source · pub struct OwnedRegion<T> { /* private fields */ }
Expand description
A container for owned types.
The container can absorb any type, and stores an owned version of the type, similarly to what
vectors do. We recommend using this container for copy types, but there is no restriction in
the implementation, and in fact it can correctly store owned values, although any data owned
by T
is regular heap-allocated data, and not contained in regions.
§Examples
use flatcontainer::{Push, OwnedRegion, Region};
let mut r = <OwnedRegion<_>>::default();
let panagram_en = "The quick fox jumps over the lazy dog";
let panagram_de = "Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich";
let en_index = r.push(panagram_en.as_bytes());
let de_index = r.push(panagram_de.as_bytes());
assert_eq!(panagram_de.as_bytes(), r.index(de_index));
assert_eq!(panagram_en.as_bytes(), r.index(en_index));
Trait Implementations§
source§impl<T> Clone for OwnedRegion<T>where
T: Clone,
impl<T> Clone for OwnedRegion<T>where
T: Clone,
source§fn clone(&self) -> OwnedRegion<T>
fn clone(&self) -> OwnedRegion<T>
Returns a copy of the value. Read more
source§fn clone_from(&mut self, source: &OwnedRegion<T>)
fn clone_from(&mut self, source: &OwnedRegion<T>)
Performs copy-assignment from
source
. Read moresource§impl<T> Debug for OwnedRegion<T>where
T: Debug,
impl<T> Debug for OwnedRegion<T>where
T: Debug,
source§impl<T> Default for OwnedRegion<T>
impl<T> Default for OwnedRegion<T>
source§fn default() -> OwnedRegion<T>
fn default() -> OwnedRegion<T>
Returns the “default value” for a type. Read more
source§impl<'de, T> Deserialize<'de> for OwnedRegion<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for OwnedRegion<T>where
T: Deserialize<'de>,
source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<OwnedRegion<T>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<OwnedRegion<T>, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<T> Push<&&[T]> for OwnedRegion<T>
impl<T> Push<&&[T]> for OwnedRegion<T>
source§impl<T, I> Push<CopyIter<I>> for OwnedRegion<T>where
T: Clone,
I: IntoIterator<Item = T>,
impl<T, I> Push<CopyIter<I>> for OwnedRegion<T>where
T: Clone,
I: IntoIterator<Item = T>,
source§impl<T> Push<Vec<T>> for OwnedRegion<T>
impl<T> Push<Vec<T>> for OwnedRegion<T>
source§impl<T> Region for OwnedRegion<T>
impl<T> Region for OwnedRegion<T>
§type ReadItem<'a> = &'a [T]
where
OwnedRegion<T>: 'a
type ReadItem<'a> = &'a [T] where OwnedRegion<T>: 'a
The type of the data that one gets out of the container.
§type Index = (usize, usize)
type Index = (usize, usize)
The type to index into the container. Should be treated
as an opaque type, even if known.
source§fn merge_regions<'a>(
regions: impl Iterator<Item = &'a OwnedRegion<T>> + Clone,
) -> OwnedRegion<T>where
OwnedRegion<T>: 'a,
fn merge_regions<'a>(
regions: impl Iterator<Item = &'a OwnedRegion<T>> + Clone,
) -> OwnedRegion<T>where
OwnedRegion<T>: 'a,
Construct a region that can absorb the contents of
regions
in the future.source§fn index(
&self,
_: <OwnedRegion<T> as Region>::Index,
) -> <OwnedRegion<T> as Region>::ReadItem<'_>
fn index( &self, _: <OwnedRegion<T> as Region>::Index, ) -> <OwnedRegion<T> as Region>::ReadItem<'_>
Index into the container. The index must be obtained by
pushing data into the container.
source§fn reserve_regions<'a, I>(&mut self, regions: I)
fn reserve_regions<'a, I>(&mut self, regions: I)
Ensure that the region can absorb the items of
regions
without reallocationsource§fn reborrow<'b, 'a>(
item: <OwnedRegion<T> as Region>::ReadItem<'a>,
) -> <OwnedRegion<T> as Region>::ReadItem<'b>where
'a: 'b,
OwnedRegion<T>: 'a,
fn reborrow<'b, 'a>(
item: <OwnedRegion<T> as Region>::ReadItem<'a>,
) -> <OwnedRegion<T> as Region>::ReadItem<'b>where
'a: 'b,
OwnedRegion<T>: 'a,
Converts a read item into one with a narrower lifetime.
source§impl<'b, T> ReserveItems<&'b [T]> for OwnedRegion<T>
impl<'b, T> ReserveItems<&'b [T]> for OwnedRegion<T>
source§impl<'b, T, const N: usize> ReserveItems<&'b [T; N]> for OwnedRegion<T>where
T: Clone,
impl<'b, T, const N: usize> ReserveItems<&'b [T; N]> for OwnedRegion<T>where
T: Clone,
source§impl<'a, T> ReserveItems<&'a Vec<T>> for OwnedRegion<T>
impl<'a, T> ReserveItems<&'a Vec<T>> for OwnedRegion<T>
source§impl<T, J> ReserveItems<CopyIter<J>> for OwnedRegion<T>
impl<T, J> ReserveItems<CopyIter<J>> for OwnedRegion<T>
source§impl<T> Serialize for OwnedRegion<T>where
T: Serialize,
impl<T> Serialize for OwnedRegion<T>where
T: Serialize,
source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl<T> Freeze for OwnedRegion<T>
impl<T> RefUnwindSafe for OwnedRegion<T>where
T: RefUnwindSafe,
impl<T> Send for OwnedRegion<T>where
T: Send,
impl<T> Sync for OwnedRegion<T>where
T: Sync,
impl<T> Unpin for OwnedRegion<T>where
T: Unpin,
impl<T> UnwindSafe for OwnedRegion<T>where
T: UnwindSafe,
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)