pub struct Trait {
pub id: TraitId,
pub name: String,
pub description: Option<String>,
pub rate_multiplier: f64,
}Expand description
A trait that modifies resource rates (RFC-0001)
Traits are scalar modifiers, not behavioral mixins. They apply multiplicative rate adjustments (e.g., senior = 1.3x, junior = 0.8x).
§Example
use utf8proj_core::Trait;
let senior = Trait::new("senior")
.description("5+ years experience")
.rate_multiplier(1.3);
assert_eq!(senior.rate_multiplier, 1.3);Fields§
§id: TraitIdUnique identifier
name: StringHuman-readable name
description: Option<String>Optional description
rate_multiplier: f64Rate multiplier (1.0 = no change, 1.3 = 30% increase)
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Trait
impl<'de> Deserialize<'de> for Trait
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Trait
Auto Trait Implementations§
impl Freeze for Trait
impl RefUnwindSafe for Trait
impl Send for Trait
impl Sync for Trait
impl Unpin for Trait
impl UnwindSafe for Trait
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more