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.