pub struct MemberSignal {
pub subject: SubjectId,
pub joined_at_ms: Option<u64>,
pub roles: Vec<Hash32>,
pub is_staff: bool,
pub lifetime_messages: u64,
pub first_post_ms: Option<u64>,
}Expand description
What the caller knows about one member before any judgement.
Fields§
§subject: SubjectId§joined_at_ms: Option<u64>Guestbook join, ms. None = unknown; with no first post either, tenure
is Indeterminate and the member is never convicted on tenure.
roles: Vec<Hash32>Roles held, by eid — shields key on permissions, never on names.
is_staff: boolHolds a role carrying any moderation permission bit.
lifetime_messages: u64Everything they have ever said here, not just inside the window. Standing is historical by nature: a regular of two years who had a quiet week is still a regular, and a window-only count would make them re-earn their standing every week. A declared input, so the engine stays pure.
first_post_ms: Option<u64>Their FIRST post ever, ms. Tenure is the oldest trace of someone, and the window can only see a few days of it — a member whose Join was lost (or who joined long after they started posting) would otherwise have their tenure capped at the window’s width and read as a newcomer.
Trait Implementations§
Source§impl Clone for MemberSignal
impl Clone for MemberSignal
Source§fn clone(&self) -> MemberSignal
fn clone(&self) -> MemberSignal
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for MemberSignal
impl RefUnwindSafe for MemberSignal
impl Send for MemberSignal
impl Sync for MemberSignal
impl Unpin for MemberSignal
impl UnsafeUnpin for MemberSignal
impl UnwindSafe for MemberSignal
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
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> ⓘ
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