Fix: Convert Sun to the unit struct

This commit is contained in:
Jujumba 2023-05-27 15:07:25 +02:00
parent 30291a3c25
commit a42efe9182

View File

@ -10,7 +10,7 @@
use std::rc::Rc; use std::rc::Rc;
#[derive(Debug)] #[derive(Debug)]
struct Sun {} struct Sun;
#[derive(Debug)] #[derive(Debug)]
enum Planet { enum Planet {
@ -31,7 +31,7 @@ impl Planet {
} }
fn main() { fn main() {
let sun = Rc::new(Sun {}); let sun = Rc::new(Sun);
println!("reference count = {}", Rc::strong_count(&sun)); // 1 reference println!("reference count = {}", Rc::strong_count(&sun)); // 1 reference
let mercury = Planet::Mercury(Rc::clone(&sun)); let mercury = Planet::Mercury(Rc::clone(&sun));
@ -55,17 +55,17 @@ fn main() {
jupiter.details(); jupiter.details();
// TODO // TODO
let saturn = Planet::Saturn(Rc::new(Sun {})); let saturn = Planet::Saturn(Rc::new(Sun));
println!("reference count = {}", Rc::strong_count(&sun)); // 7 references println!("reference count = {}", Rc::strong_count(&sun)); // 7 references
saturn.details(); saturn.details();
// TODO // TODO
let uranus = Planet::Uranus(Rc::new(Sun {})); let uranus = Planet::Uranus(Rc::new(Sun));
println!("reference count = {}", Rc::strong_count(&sun)); // 8 references println!("reference count = {}", Rc::strong_count(&sun)); // 8 references
uranus.details(); uranus.details();
// TODO // TODO
let neptune = Planet::Neptune(Rc::new(Sun {})); let neptune = Planet::Neptune(Rc::new(Sun));
println!("reference count = {}", Rc::strong_count(&sun)); // 9 references println!("reference count = {}", Rc::strong_count(&sun)); // 9 references
neptune.details(); neptune.details();