Consts in structs, enums, and traits
Structs, enums, and traits definitions can also be provided with constant field members. They can be used in cases where you need to share a constant among them. Take, for example, a scenario where we have a Circle
trait that's is meant to be implemented by different circular shape types. We can add a PI
 constant to the Circle
trait, which can be shared by any type that has an  area
property and relies on value of PI
for calculating the area:
// trait_constants.rs trait Circular { const PI: f64 = 3.14; fn area(&self) -> f64; } struct Circle { rad: f64 } impl Circular for Circle { fn area(&self) -> f64 { Circle::PI * self.rad * self.rad } } fn main() { let c_one = Circle { rad: 4.2 }; let c_two = Circle { rad: 75.2 }; println!("Area of circle one: {}", c_one.area()); println!("Area of circle two: {}", c_two.area()); }
We can also have consts in structs and enums:
// enum_struct_consts.rs enum...