Struct dockerfile_parser::Splicer[][src]

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

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.

Implementations

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

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.