pub struct Patch<'a> { /* private fields */ }
Expand description
Suggested edit to the Snippet
See Snippet::patch
§Example
use annotate_snippets::{
renderer::DecorStyle, AnnotationKind, Group, Level, Patch, Renderer, Snippet,
};
fn main() {
let source = r#"
#![allow(dead_code)]
struct U <T> {
wtf: Option<Box<U<T>>>,
x: T,
}
fn main() {
U {
wtf: Some(Box(U {
wtf: None,
x: (),
})),
x: ()
};
let _ = std::collections::HashMap();
let _ = std::collections::HashMap {};
let _ = Box {};
}
"#;
let report = &[
Group::with_title(Level::ERROR.primary_title(
"cannot construct `Box<_, _>` with struct literal syntax due to private fields",
))
.element(
Snippet::source(source)
.path("$DIR/multi-suggestion.rs")
.annotation(AnnotationKind::Primary.span(295..298)),
)
.element(Level::NOTE.message("private fields `0` and `1` that were not provided")),
Group::with_title(Level::HELP.secondary_title(
"you might have meant to use an associated function to build this type",
))
.element(
Snippet::source(source)
.path("$DIR/multi-suggestion.rs")
.patch(Patch::new(298..301, "::new(_)")),
)
.element(
Snippet::source(source)
.path("$DIR/multi-suggestion.rs")
.patch(Patch::new(298..301, "::new_uninit()")),
)
.element(
Snippet::source(source)
.path("$DIR/multi-suggestion.rs")
.patch(Patch::new(298..301, "::new_zeroed()")),
)
.element(
Snippet::source(source)
.path("$DIR/multi-suggestion.rs")
.patch(Patch::new(298..301, "::new_in(_, _)")),
)
.element(Level::NOTE.no_name().message("and 12 other candidates")),
Group::with_title(Level::HELP.secondary_title("consider using the `Default` trait"))
.element(
Snippet::source(source)
.path("$DIR/multi-suggestion.rs")
.patch(Patch::new(295..295, "<"))
.patch(Patch::new(
298..301,
" as std::default::Default>::default()",
)),
),
];
let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
Implementations§
Source§impl<'a> Patch<'a>
impl<'a> Patch<'a>
Sourcepub fn new(span: Range<usize>, replacement: impl Into<Cow<'a, str>>) -> Self
pub fn new(span: Range<usize>, replacement: impl Into<Cow<'a, str>>) -> Self
Splice replacement
into the Snippet
at the specified byte span
Text passed to this function is considered “untrusted input”, as such all text is passed through a normalization function. Pre-styled text is not allowed to be passed to this function.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Patch<'a>
impl<'a> RefUnwindSafe for Patch<'a>
impl<'a> Send for Patch<'a>
impl<'a> Sync for Patch<'a>
impl<'a> Unpin for Patch<'a>
impl<'a> UnwindSafe for Patch<'a>
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