pub struct Threads {
pub thread_nodes: HashMap<ThreadNodeHash, ThreadNode>,
pub groups: HashMap<ThreadHash, ThreadGroup>,
pub message_ids_set: HashSet<Vec<u8>>,
pub missing_message_ids: HashSet<Vec<u8>>,
pub hash_set: HashSet<EnvelopeHash>,
pub thread_to_envelope: HashMap<ThreadHash, Vec<EnvelopeHash>>,
pub envelope_to_thread: HashMap<EnvelopeHash, ThreadHash>,
/* private fields */
}
Fields§
§thread_nodes: HashMap<ThreadNodeHash, ThreadNode>
§groups: HashMap<ThreadHash, ThreadGroup>
§message_ids_set: HashSet<Vec<u8>>
§missing_message_ids: HashSet<Vec<u8>>
§hash_set: HashSet<EnvelopeHash>
§thread_to_envelope: HashMap<ThreadHash, Vec<EnvelopeHash>>
§envelope_to_thread: HashMap<EnvelopeHash, ThreadHash>
Implementations§
source§impl Threads
impl Threads
pub fn is_snoozed(&self, h: ThreadNodeHash) -> bool
pub fn thread_ref(&self, h: ThreadHash) -> &Thread
pub fn thread_ref_mut(&mut self, h: ThreadHash) -> &mut Thread
pub fn find_group(&self, h: ThreadHash) -> ThreadHash
pub fn new(length: usize) -> Self
pub fn threads_iter( &self, root_tree: SmallVec<[ThreadNodeHash; 1024]> ) -> ThreadsIterator<'_> ⓘ
pub fn thread_iter(&self, index: ThreadHash) -> ThreadIterator<'_> ⓘ
pub fn update_envelope( &mut self, envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>>, old_hash: EnvelopeHash, new_hash: EnvelopeHash ) -> Result<(), ()>
pub fn remove(&mut self, envelope_hash: EnvelopeHash)
pub fn amend( &mut self, envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>> )
sourcepub fn update_show_subject(
&mut self,
id: ThreadNodeHash,
env_hash: EnvelopeHash,
envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>>
)
pub fn update_show_subject( &mut self, id: ThreadNodeHash, env_hash: EnvelopeHash, envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>> )
Update show_subject
details of ThreadNode
.
pub fn insert( &mut self, envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>>, env_hash: EnvelopeHash )
pub fn insert_reply( &mut self, envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>>, env_hash: EnvelopeHash ) -> bool
pub fn group_inner_sort_by( &self, vec: &mut [ThreadHash], sort: (SortField, SortOrder), envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>> )
pub fn node_inner_sort_by( &self, vec: &mut [ThreadNodeHash], sort: (SortField, SortOrder), envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>> )
pub fn sort_by( &self, sort: (SortField, SortOrder), subsort: (SortField, SortOrder), envelopes: &Arc<RwLock<HashMap<EnvelopeHash, Envelope>>> )
pub fn thread_to_mail(&self, i: ThreadNodeHash) -> EnvelopeHash
pub fn thread_nodes(&self) -> &HashMap<ThreadNodeHash, ThreadNode>
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn root_len(&self) -> usize
pub fn root_set(&self, idx: usize) -> ThreadNodeHash
pub fn roots(&self) -> SmallVec<[ThreadHash; 1024]>
Trait Implementations§
source§impl<'de> Deserialize<'de> for Threads
impl<'de> Deserialize<'de> for Threads
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Index<&ThreadNodeHash> for Threads
impl Index<&ThreadNodeHash> for Threads
§type Output = ThreadNode
type Output = ThreadNode
The returned type after indexing.
source§fn index(&self, index: &ThreadNodeHash) -> &ThreadNode
fn index(&self, index: &ThreadNodeHash) -> &ThreadNode
Performs the indexing (
container[index]
) operation. Read moreAuto Trait Implementations§
impl Freeze for Threads
impl RefUnwindSafe for Threads
impl Send for Threads
impl Sync for Threads
impl Unpin for Threads
impl UnwindSafe for Threads
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