[−][src]Struct dockerfile_parser::Splicer
A utility to repeatedly replace spans of text within a larger document.
Each subsequent call to Splicer::splice(...)
rewrites the content
buffer
and appends to the list of internal offsets. Splicer::splice(...)
then
adjusts span bounds at call-time to ensures repeated calls to splice(...)
continue to work even if one or both of the span bounds have shifted.
Example
use dockerfile_parser::*; let dockerfile: Dockerfile = r#" FROM alpine:3.10 "#.parse()?; let from = match &dockerfile.instructions[0] { Instruction::From(f) => f, _ => panic!("invalid") }; let mut splicer = dockerfile.splicer(); splicer.splice(&from.image_span, "alpine:3.11"); assert_eq!(splicer.content, r#" FROM alpine:3.11 "#);
Fields
content: String
The current content of the splice buffer.
Methods
impl Splicer
[src]
pub fn splice(&mut self, span: &Span, replacement: &str)
[src]
Replaces a Span with the given replacement string, mutating the content
string.
Sections may be deleted by replacing them with an empty string (""
).
Note that spans are always relative to the original input document.
Span offsets are recalculated at call-time to account for previous calls
to splice(...)
that may have shifted one or both of the span bounds.
Auto Trait Implementations
impl RefUnwindSafe for Splicer
impl Send for Splicer
impl Sync for Splicer
impl Unpin for Splicer
impl UnwindSafe for Splicer
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,