mod elastic;
mod elastic_viscoplastic;
mod hyperelastic;
mod hyperelastic_viscoplastic;
pub use self::{
elastic::{
additive::ElasticAdditive,
multiplicative::{ElasticMultiplicative, ElasticMultiplicativeViscoplastic},
},
elastic_viscoplastic::additive::{
ElasticViscoplasticAdditiveElastic, ElasticViscoplasticAdditiveViscoplastic,
},
};
use std::{
any::type_name,
fmt::{self, Debug, Formatter},
};
#[derive(Clone)]
pub struct Additive<C1, C2>(C1, C2);
#[derive(Clone)]
pub struct Multiplicative<C1, C2>(C1, C2);
impl<C1, C2> Debug for Additive<C1, C2> {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
write!(
f,
"Additive({}, {})",
type_name::<C1>()
.rsplit("::")
.next()
.unwrap()
.split("<")
.next()
.unwrap(),
type_name::<C2>()
.rsplit("::")
.next()
.unwrap()
.split("<")
.next()
.unwrap()
)
}
}
impl<C1, C2> Debug for Multiplicative<C1, C2> {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
write!(
f,
"Multiplicative({}, {})",
type_name::<C1>()
.rsplit("::")
.next()
.unwrap()
.split("<")
.next()
.unwrap(),
type_name::<C2>()
.rsplit("::")
.next()
.unwrap()
.split("<")
.next()
.unwrap()
)
}
}