pub struct Group(pub usize);Expand description
An integer that separates distinct groups of Ids.
This can be seen as a way to pre-allocate consecutive integers for one group to make segments less fragmented.
(Group, Id) are also topologically sorted.
Tuple Fields§
§0: usizeImplementations§
Source§impl Group
impl Group
Sourcepub const MASTER: Group
pub const MASTER: Group
The “master” group. usually ancestors(master).
- Expected to have most of the commits in a repo.
- Ideally free from fragmentation. In other words,
ancestors(master)can be represented in a single Span. - Ideally has limited heads. Does not scale with too many heads.
- Vertexs (commit hashes) might be lazy.
Sourcepub const NON_MASTER: Group
pub const NON_MASTER: Group
The “non-master” group.
- Concrete vertexes not in the “master” group. For example, public release branches, local feature branches.
- Expected to have multiple heads. In other words, is fragmented.
- Expected to be sparse referred. For example, the “visible heads” will refer to a bounded subset in this group.
- Expected to be non-lazy. Code paths assume Vertexs (commit hashes) are known in this group.
Sourcepub const VIRTUAL: Group
pub const VIRTUAL: Group
The “virtual” group.
- Typically, “null” and “wdir()”.
- Should not be written to disk.
- Not lazy.
pub const ALL: [Group; 3]
pub const MAX: Group
pub const COUNT: usize
pub const BITS: u32 = 8
pub const BYTES: usize = 1
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Group
impl<'de> Deserialize<'de> for Group
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Group, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Group, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Ord for Group
impl Ord for Group
Source§impl PartialOrd for Group
impl PartialOrd for Group
Source§impl Serialize for Group
impl Serialize for Group
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
impl Copy for Group
impl Eq for Group
impl StructuralPartialEq for Group
Auto Trait Implementations§
impl Freeze for Group
impl RefUnwindSafe for Group
impl Send for Group
impl Sync for Group
impl Unpin for Group
impl UnsafeUnpin for Group
impl UnwindSafe for Group
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§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more