[][src]Struct dockerfile_parser::Splicer

pub struct Splicer {
    pub content: String,
    // some fields omitted
}

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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.