pub struct TaxPolicy {
pub faction: FactionId,
pub flat_rate: f64,
pub brackets: Vec<(f64, f64)>,
pub trade_tax_rate: f64,
pub import_duty: f64,
pub export_duty: f64,
pub luxury_multiplier: f64,
pub evasion_rate: f64,
}Expand description
The tax regime applied to a faction’s subjects.
Fields§
§faction: FactionId§flat_rate: f64Flat tax rate applied to all income (0.0 – 1.0).
brackets: Vec<(f64, f64)>Progressive brackets: (threshold, marginal_rate).
trade_tax_rate: f64Percentage of trade route income taxed.
import_duty: f64Import duty (applied to value of goods arriving from other factions).
export_duty: f64Export duty.
luxury_multiplier: f64Luxury tax multiplier (applied to items tagged as luxury in markets).
evasion_rate: f64Tax evasion estimate (fraction that slips through).
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TaxPolicy
impl RefUnwindSafe for TaxPolicy
impl Send for TaxPolicy
impl Sync for TaxPolicy
impl Unpin for TaxPolicy
impl UnsafeUnpin for TaxPolicy
impl UnwindSafe for TaxPolicy
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.