We need lifitime annotation, when struct wants to old a reference.
This commit is contained in:
parent
b0e998fb28
commit
352085f8d9
46
src/main.rs
46
src/main.rs
@ -19,6 +19,16 @@ impl RGB {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct Container<'a> {
|
||||||
|
value: &'a RGB,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> Container<'a> {
|
||||||
|
fn new(value: &RGB) -> Container {
|
||||||
|
Container { value }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct Image {
|
struct Image {
|
||||||
width: usize,
|
width: usize,
|
||||||
height: usize,
|
height: usize,
|
||||||
@ -59,40 +69,12 @@ impl Image {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn manipulate_first_pixel(image: &mut Image) {
|
|
||||||
let c = image.get_mut(0, 0);
|
|
||||||
|
|
||||||
c.red = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut image = Image::white_image(640, 480);
|
let image = Image::white_image(640, 480);
|
||||||
|
|
||||||
manipulate_first_pixel(&mut image);
|
let c = image.get(0, 0);
|
||||||
|
|
||||||
let mut_c1 = image.get_mut(0, 0);
|
let container = Container::new(c);
|
||||||
|
|
||||||
println!(
|
println!("{}", container.value.blue);
|
||||||
"red = {}, green = {}, blue = {}",
|
|
||||||
mut_c1.red, mut_c1.green, mut_c1.blue
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut_c2 = image.get_mut(0, 0);
|
|
||||||
|
|
||||||
/*let c1 = image.get(0, 0);
|
|
||||||
let c2 = image.get(0, 0);
|
|
||||||
let c3 = image.get(0, 0);
|
|
||||||
let c4 = image.get(0, 0);
|
|
||||||
let c5 = image.get(0, 0);
|
|
||||||
|
|
||||||
println!("red = {}, green = {}, blue = {}", c1.red, c1.green, c1.blue);
|
|
||||||
println!("red = {}, green = {}, blue = {}", c2.red, c2.green, c2.blue);
|
|
||||||
println!("red = {}, green = {}, blue = {}", c3.red, c3.green, c3.blue);
|
|
||||||
println!("red = {}, green = {}, blue = {}", c4.red, c4.green, c4.blue);
|
|
||||||
println!("red = {}, green = {}, blue = {}", c5.red, c5.green, c5.blue);*/
|
|
||||||
|
|
||||||
println!(
|
|
||||||
"red = {}, green = {}, blue = {}",
|
|
||||||
mut_c2.red, mut_c2.green, mut_c2.blue
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user