#[non_exhaustive]pub enum MemberRole {
Correction,
Base,
}Expand description
The role a member plays within an overlay composite.
v1.0 defines only Correction and Base; wire values 0x02–0xFF are
RESERVED for a future tombstone kind (see docs/spec/layouts/composite.md
§ Deferred) and are rejected by MemberRole::from_wire.
§Examples
use hurray_core::descriptor::MemberRole;
assert_eq!(MemberRole::Correction.wire_byte(), 0x00);
assert_eq!(MemberRole::Base.wire_byte(), 0x01);
assert_eq!(MemberRole::from_wire(0x01).unwrap(), MemberRole::Base);
assert!(MemberRole::from_wire(0x02).is_err());Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Correction
A scattered correction applied within its box. Wire byte 0x00.
Base
The base member spanning the whole index space. Wire byte 0x01.
Implementations§
Source§impl MemberRole
impl MemberRole
Sourcepub fn wire_byte(self) -> u8
pub fn wire_byte(self) -> u8
Returns the wire byte for this role.
§Examples
use hurray_core::descriptor::MemberRole;
assert_eq!(MemberRole::Base.wire_byte(), 0x01);Sourcepub fn from_wire(byte: u8) -> Result<Self>
pub fn from_wire(byte: u8) -> Result<Self>
Constructs a MemberRole from its wire byte.
§Errors
Returns Error::InvalidMemberRole for any byte other than 0x00 or 0x01.
§Examples
use hurray_core::{Error, descriptor::MemberRole};
assert_eq!(MemberRole::from_wire(0x00).unwrap(), MemberRole::Correction);
assert!(matches!(MemberRole::from_wire(0xFF), Err(Error::InvalidMemberRole(0xFF))));Trait Implementations§
Source§impl Clone for MemberRole
impl Clone for MemberRole
Source§fn clone(&self) -> MemberRole
fn clone(&self) -> MemberRole
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for MemberRole
Source§impl Debug for MemberRole
impl Debug for MemberRole
impl Eq for MemberRole
Source§impl Hash for MemberRole
impl Hash for MemberRole
Source§impl PartialEq for MemberRole
impl PartialEq for MemberRole
Source§fn eq(&self, other: &MemberRole) -> bool
fn eq(&self, other: &MemberRole) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for MemberRole
Auto Trait Implementations§
impl Freeze for MemberRole
impl RefUnwindSafe for MemberRole
impl Send for MemberRole
impl Sync for MemberRole
impl Unpin for MemberRole
impl UnsafeUnpin for MemberRole
impl UnwindSafe for MemberRole
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