pub struct CLineSplicedSource {
pub bytes: Vec<u8>,
pub original_offsets: Vec<usize>,
}Expand description
Source bytes after C translation phase 2 line splicing.
bytes contains the source with every backslash-newline pair deleted.
original_offsets maps each output byte boundary back to the input byte
boundary at the same logical position. Its length is always
bytes.len() + 1, with the final entry pointing at source.len().
Fields§
§bytes: Vec<u8>Phase-2 source bytes with line-splice pairs removed.
original_offsets: Vec<usize>Output byte-boundary to original byte-boundary map.
Implementations§
Source§impl CLineSplicedSource
impl CLineSplicedSource
Sourcepub fn original_offset(&self, logical_offset: usize) -> usize
pub fn original_offset(&self, logical_offset: usize) -> usize
Map a logical byte boundary in bytes back to an original source offset.
Trait Implementations§
Source§impl Clone for CLineSplicedSource
impl Clone for CLineSplicedSource
Source§fn clone(&self) -> CLineSplicedSource
fn clone(&self) -> CLineSplicedSource
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 moreSource§impl Debug for CLineSplicedSource
impl Debug for CLineSplicedSource
impl Eq for CLineSplicedSource
Source§impl PartialEq for CLineSplicedSource
impl PartialEq for CLineSplicedSource
impl StructuralPartialEq for CLineSplicedSource
Auto Trait Implementations§
impl Freeze for CLineSplicedSource
impl RefUnwindSafe for CLineSplicedSource
impl Send for CLineSplicedSource
impl Sync for CLineSplicedSource
impl Unpin for CLineSplicedSource
impl UnsafeUnpin for CLineSplicedSource
impl UnwindSafe for CLineSplicedSource
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> 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