pub use crate::concrete::property::{
ConcreteClassForAxialTension, ConcreteClassForCompression, ConcreteClassForFlexuralTension,
ConcreteGradeForFrostResistanceByFirstMethod, ConcreteGradeForFrostResistanceBySecondMethod,
ConcreteGradeForWaterResistance,
};
pub mod property;
#[derive(Clone, bon::Builder)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Concrete {
class_for_compression: ConcreteClassForCompression,
class_for_axial_tension: Option<ConcreteClassForAxialTension>,
class_for_flexural_tension: Option<ConcreteClassForFlexuralTension>,
grade_for_frost_resistance_by_first_method:
Option<ConcreteGradeForFrostResistanceByFirstMethod>,
grade_for_frost_resistance_by_second_method:
Option<ConcreteGradeForFrostResistanceBySecondMethod>,
grade_for_water_resistance: Option<ConcreteGradeForWaterResistance>,
}
impl Concrete {
pub fn class_for_compression(&self) -> ConcreteClassForCompression {
self.class_for_compression
}
pub fn class_for_axial_tension(&self) -> Option<ConcreteClassForAxialTension> {
self.class_for_axial_tension
}
pub fn class_for_flexural_tension(&self) -> Option<ConcreteClassForFlexuralTension> {
self.class_for_flexural_tension
}
pub fn grade_for_frost_resistance_by_first_method(
&self,
) -> Option<ConcreteGradeForFrostResistanceByFirstMethod> {
self.grade_for_frost_resistance_by_first_method
}
pub fn grade_for_frost_resistance_by_second_method(
&self,
) -> Option<ConcreteGradeForFrostResistanceBySecondMethod> {
self.grade_for_frost_resistance_by_second_method
}
pub fn grade_for_water_resistance(&self) -> Option<ConcreteGradeForWaterResistance> {
self.grade_for_water_resistance
}
}