pub struct LoadoutSpec {Show 21 fields
pub inherit: Option<Base>,
pub head: Option<ItemSpec>,
pub neck: Option<ItemSpec>,
pub shoulders: Option<ItemSpec>,
pub chest: Option<ItemSpec>,
pub gloves: Option<ItemSpec>,
pub ring1: Option<ItemSpec>,
pub ring2: Option<ItemSpec>,
pub back: Option<ItemSpec>,
pub belt: Option<ItemSpec>,
pub legs: Option<ItemSpec>,
pub feet: Option<ItemSpec>,
pub tabard: Option<ItemSpec>,
pub bag1: Option<ItemSpec>,
pub bag2: Option<ItemSpec>,
pub bag3: Option<ItemSpec>,
pub bag4: Option<ItemSpec>,
pub lantern: Option<ItemSpec>,
pub glider: Option<ItemSpec>,
pub active_hands: Option<Hands>,
pub inactive_hands: Option<Hands>,
}Expand description
Core struct of loadout asset.
If you want programing API of loadout creation,
use LoadoutBuilder instead.
For examples of assets, see assets/test/loadout/ok folder.
Fields§
§inherit: Option<Base>§head: Option<ItemSpec>§neck: Option<ItemSpec>§shoulders: Option<ItemSpec>§chest: Option<ItemSpec>§gloves: Option<ItemSpec>§ring1: Option<ItemSpec>§ring2: Option<ItemSpec>§back: Option<ItemSpec>§belt: Option<ItemSpec>§legs: Option<ItemSpec>§feet: Option<ItemSpec>§tabard: Option<ItemSpec>§bag1: Option<ItemSpec>§bag2: Option<ItemSpec>§bag3: Option<ItemSpec>§bag4: Option<ItemSpec>§lantern: Option<ItemSpec>§glider: Option<ItemSpec>§active_hands: Option<Hands>§inactive_hands: Option<Hands>Implementations§
Source§impl LoadoutSpec
impl LoadoutSpec
Sourcefn merge(self, base: Self) -> Self
fn merge(self, base: Self) -> Self
Merges self with base.
If some field exists in self it will be used,
if no, it will be taken from base.
NOTE: it uses only inheritance chain from base
without evaluating it.
Inheritance chain from self is discarded.
§Examples
You have your asset, let’s call it “a”. In this asset, you have inheritance from “b”. In asset “b” you inherit from “c”.
If you load your “a” into LoadoutSpec A, and “b” into LoadoutSpec B, and then merge A into B, you will get new LoadoutSpec that will inherit from “c”.
You have two assets, let’s call them “a” and “b”. “a” inherits from “n”, “b” inherits from “m”.
If you load “a” into A, “b” into B and then will try to merge them you will get new LoadoutSpec that will inherit from “m”. It’s error, because chain to “n” is lost!!!
Correct way to do this will be first evaluating at least “a” and then merge this new LoadoutSpec with “b”.
Trait Implementations§
Source§impl Clone for LoadoutSpec
impl Clone for LoadoutSpec
Source§fn clone(&self) -> LoadoutSpec
fn clone(&self) -> LoadoutSpec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LoadoutSpec
impl Debug for LoadoutSpec
Source§impl Default for LoadoutSpec
impl Default for LoadoutSpec
Source§fn default() -> LoadoutSpec
fn default() -> LoadoutSpec
Source§impl<'de> Deserialize<'de> for LoadoutSpec
impl<'de> Deserialize<'de> for LoadoutSpec
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>,
Auto Trait Implementations§
impl Freeze for LoadoutSpec
impl RefUnwindSafe for LoadoutSpec
impl Send for LoadoutSpec
impl Sync for LoadoutSpec
impl Unpin for LoadoutSpec
impl UnwindSafe for LoadoutSpec
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<Context> SubContext<Context> for Context
impl<Context> SubContext<Context> for Context
fn sub_context(self) -> Context
§impl<T> TryDefault for Twhere
T: Default,
impl<T> TryDefault for Twhere
T: Default,
§fn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
§fn unwrap_default() -> Self
fn unwrap_default() -> Self
try_default and panics on an error case.