pub(crate) struct DirectiveLine<'a> {
pub(crate) file_path: &'a Utf8Path,
pub(crate) line_number: usize,
pub(crate) revision: Option<&'a str>,
raw_directive: &'a str,
pub(crate) name: &'a str,
}Expand description
The (partly) broken-down contents of a line containing a test directive,
which iter_directives passes to its callback function.
For example:
//@ compile-flags: -O
^^^^^^^^^^^^^^^^^ raw_directive
^^^^^^^^^^^^^ name
//@ [foo] compile-flags: -O
^^^ revision
^^^^^^^^^^^^^^^^^ raw_directive
^^^^^^^^^^^^^ nameFields§
§file_path: &'a Utf8PathPath of the file containing this line.
Mostly used for diagnostics, but some directives (e.g. //@ pp-exact)
also use it to compute a value based on the filename.
line_number: usize§revision: Option<&'a str>Some test directives start with a revision name in square brackets
(e.g. [foo]), and only apply to that revision of the test.
If present, this field contains the revision name (e.g. foo).
raw_directive: &'a strThe main part of the directive, after removing the comment prefix and the optional revision specifier.
This is “raw” because the directive’s name and colon-separated value (if present) have not yet been extracted or checked.
name: &'a strName of the directive.
Invariant: self.raw_directive.starts_with(self.name)
Implementations§
Source§impl<'ln> DirectiveLine<'ln>
impl<'ln> DirectiveLine<'ln>
pub(crate) fn applies_to_test_revision( &self, test_revision: Option<&str>, ) -> bool
Sourcefn rest_after_separator(&self, separator: u8) -> Option<&'ln str>
fn rest_after_separator(&self, separator: u8) -> Option<&'ln str>
Helper method used by value_after_colon and remark_after_space.
Don’t call this directly.
Sourcepub(crate) fn value_after_colon(&self) -> Option<&'ln str>
pub(crate) fn value_after_colon(&self) -> Option<&'ln str>
If this directive uses name: value syntax, returns the part after
the colon character.
Sourcepub(crate) fn remark_after_space(&self) -> Option<&'ln str>
pub(crate) fn remark_after_space(&self) -> Option<&'ln str>
If this directive uses name remark syntax, returns the part after
the separating space.
Auto Trait Implementations§
impl<'a> Freeze for DirectiveLine<'a>
impl<'a> RefUnwindSafe for DirectiveLine<'a>
impl<'a> Send for DirectiveLine<'a>
impl<'a> Sync for DirectiveLine<'a>
impl<'a> Unpin for DirectiveLine<'a>
impl<'a> UnwindSafe for DirectiveLine<'a>
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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 72 bytes