pub struct RawIssue { /* private fields */ }Expand description
One issue exactly as the tracker returned it, with no way to read its text. See the module docs: this is the invariant, not an inconvenience.
Debug is hand-written and prints the body’s length. A derived one would
put untiered attacker text into the first tracing::debug! or unwrap()
that touched this type, which is the same leak by a lazier route.
Implementations§
Source§impl RawIssue
impl RawIssue
pub fn repo(&self) -> &str
pub fn number(&self) -> u64
Sourcepub fn has_label(&self, label: &str) -> bool
pub fn has_label(&self, label: &str) -> bool
Whether a label is present. A predicate, not a listing: nothing needs to read what an issue’s labels say, only whether it opted in.
Sourcepub fn created_ms(&self) -> u64
pub fn created_ms(&self) -> u64
Unix ms the issue was opened — the loop’s sort key. A number, so it widens nothing: no text escapes through it.
Sourcepub fn carries_marker(&self, signature: &str) -> bool
pub fn carries_marker(&self, signature: &str) -> bool
A predicate over the body, not an accessor.
Deduplication needs to know whether a marker appears; it does not need the text, and giving it the text would be an untiered read. Answering yes/no locally keeps the invariant intact.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RawIssue
impl RefUnwindSafe for RawIssue
impl Send for RawIssue
impl Sync for RawIssue
impl Unpin for RawIssue
impl UnsafeUnpin for RawIssue
impl UnwindSafe for RawIssue
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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