Trait ClonableView

Source
pub trait ClonableView: View {
    // Required method
    fn clone_unchecked(&mut self) -> Result<Self, ViewError>;
}
Expand description

A view that can be shared (unsafely) by cloning it.

Note: Calling flush on any of the shared views will break the other views. Therefore, cloning views is only safe if flush only ever happens after all the copies but one have been dropped.

Required Methods§

Source

fn clone_unchecked(&mut self) -> Result<Self, ViewError>

Creates a clone of this view, sharing the underlying storage context but prone to data races which can corrupt the view state.

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.

Implementors§

Source§

impl<C> ClonableView for TestBucketQueueView<C>
where BucketQueueView<C, u16, 2>: ClonableView, Self: View,

Source§

impl<C> ClonableView for TestCollectionView<C>

Source§

impl<C> ClonableView for TestLogView<C>
where LogView<C, u16>: ClonableView, Self: View,

Source§

impl<C> ClonableView for TestMapView<C>
where MapView<C, i32, String>: ClonableView, Self: View,

Source§

impl<C> ClonableView for TestQueueView<C>
where QueueView<C, u16>: ClonableView, Self: View,

Source§

impl<C> ClonableView for TestRegisterView<C>
where RegisterView<C, u8>: ClonableView, Self: View,

Source§

impl<C> ClonableView for TestSetView<C>
where SetView<C, i32>: ClonableView, Self: View,

Source§

impl<C, I> ClonableView for CustomSetView<C, I>
where C: Context, I: Send + Sync + CustomSerialize,

Source§

impl<C, I> ClonableView for SetView<C, I>
where C: Context, I: Send + Sync + Serialize,

Source§

impl<C, I, V> ClonableView for CustomMapView<C, I, V>
where Self: View, ByteMapView<C, V>: ClonableView,

Source§

impl<C, I, V: Clone> ClonableView for MapView<C, I, V>
where Self: View, ByteMapView<C, V>: ClonableView,

Source§

impl<C, T> ClonableView for LogView<C, T>
where C: Context, T: Clone + Send + Sync + Serialize,

Source§

impl<C, T> ClonableView for QueueView<C, T>
where C: Context, T: Clone + Send + Sync + Serialize,

Source§

impl<C, T> ClonableView for RegisterView<C, T>

Source§

impl<C: Context> ClonableView for KeyValueStoreView<C>

Source§

impl<C: Context> ClonableView for ByteSetView<C>

Source§

impl<C: Clone, T: Clone, const N: usize> ClonableView for BucketQueueView<C, T, N>
where Self: View,

Source§

impl<C: Clone, V: Clone> ClonableView for ByteMapView<C, V>
where Self: View,

Source§

impl<I, W> ClonableView for ReentrantCollectionView<W::Context, I, W>

Source§

impl<I, W> ClonableView for ReentrantCustomCollectionView<W::Context, I, W>
where W: ClonableView, Self: View,

Source§

impl<I, W: ClonableView> ClonableView for CollectionView<W::Context, I, W>

Source§

impl<I: Send + Sync, W: ClonableView> ClonableView for CustomCollectionView<W::Context, I, W>

Source§

impl<W> ClonableView for HistoricallyHashableView<W::Context, W>
where W: ClonableView,

Source§

impl<W, O> ClonableView for WrappedHashableContainerView<W::Context, W, O>

Source§

impl<W: ClonableView> ClonableView for ByteCollectionView<W::Context, W>

Source§

impl<W: ClonableView> ClonableView for ReentrantByteCollectionView<W::Context, W>