Struct lever::table::lotable::LOTable [−][src]
Lever Transactional Table implementation with Optimistic concurrency and RepeatableRead isolation.
Transactional hash table fully concurrent and as long as no conflicts are made it is both lock and wait free.
Implementations
impl<K, V> LOTable<K, V, RandomState> where
K: PartialEq + Eq + Hash + Clone + Send + Sync,
V: Clone + Send + Sync, [src]
K: PartialEq + Eq + Hash + Clone + Send + Sync,
V: Clone + Send + Sync,
pub fn new() -> Self[src]
pub fn with_capacity(cap: usize) -> Self[src]
impl<K, V, S> LOTable<K, V, S> where
K: PartialEq + Eq + Hash + Clone + Send + Sync,
V: Clone + Send + Sync,
S: BuildHasher, [src]
K: PartialEq + Eq + Hash + Clone + Send + Sync,
V: Clone + Send + Sync,
S: BuildHasher,
pub fn insert(&self, k: K, v: V) -> Result<Arc<Option<V>>>[src]
pub fn remove(&self, k: &K) -> Result<Arc<Option<V>>>[src]
pub fn get(&self, k: &K) -> Option<V>[src]
pub fn replace_with<F>(&self, k: &K, f: F) -> Option<V> where
F: Fn(Option<&V>) -> Option<V>, [src]
F: Fn(Option<&V>) -> Option<V>,
pub fn replace_with_mut<F>(&self, k: &K, mut f: F) -> Option<V> where
F: FnMut(&mut Option<V>) -> &mut Option<V>, [src]
F: FnMut(&mut Option<V>) -> &mut Option<V>,
pub fn contains_key(&self, k: &K) -> bool[src]
pub fn len(&self) -> usize[src]
pub fn iter(&self) -> LOIter<'_, K, V>ⓘ[src]
pub fn clear(&self)[src]
pub fn keys<'table>(&'table self) -> impl Iterator<Item = K> + 'table[src]
pub fn values<'table>(&'table self) -> impl Iterator<Item = V> + 'table[src]
pub fn tx_manager(&self) -> Arc<TxnManager>[src]
Trait Implementations
impl<K: Clone, V: Clone, S: Clone> Clone for LOTable<K, V, S> where
K: 'static + PartialEq + Eq + Hash + Clone + Send + Sync,
V: 'static + Clone + Send + Sync,
S: BuildHasher, [src]
K: 'static + PartialEq + Eq + Hash + Clone + Send + Sync,
V: 'static + Clone + Send + Sync,
S: BuildHasher,
impl<K, V, S> Debug for LOTable<K, V, S> where
K: 'static + PartialEq + Eq + Hash + Clone + Send + Sync + Debug,
V: 'static + Clone + Send + Sync + Debug,
S: BuildHasher, [src]
K: 'static + PartialEq + Eq + Hash + Clone + Send + Sync + Debug,
V: 'static + Clone + Send + Sync + Debug,
S: BuildHasher,
impl<K, V, S> Default for LOTable<K, V, S> where
K: 'static + PartialEq + Eq + Hash + Clone + Send + Sync,
V: 'static + Clone + Send + Sync,
S: Default + BuildHasher, [src]
K: 'static + PartialEq + Eq + Hash + Clone + Send + Sync,
V: 'static + Clone + Send + Sync,
S: Default + BuildHasher,
Auto Trait Implementations
impl<K, V, S = RandomState> !RefUnwindSafe for LOTable<K, V, S>[src]
impl<K, V, S> Send for LOTable<K, V, S> where
S: Send, [src]
S: Send,
impl<K, V, S> Sync for LOTable<K, V, S> where
S: Sync, [src]
S: Sync,
impl<K, V, S> Unpin for LOTable<K, V, S> where
S: Unpin, [src]
S: Unpin,
impl<K, V, S = RandomState> !UnwindSafe for LOTable<K, V, S>[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,