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.