pub struct Unlockable<U, K, S, I> {
pub id: U,
pub inner: K,
pub is_unlocked: bool,
pub unlock_stat_conditions: Vec<StatCondition<S>>,
pub unlock_item_conditions: Vec<(I, usize, UseMode)>,
pub unlock_dependencies: Vec<U>,
}Expand description
An unlockable element. It can be unlocked to access the inner value if all conditions are met:
StatConditions- Item Conditions
- Dependant unlockables were previously unlocked.
Fields§
§id: UThe key of this unlockable.
inner: KThe thing we want to unlock access to.
is_unlocked: boolWhether we unlocked it or not.
unlock_stat_conditions: Vec<StatCondition<S>>The stat conditions required to unlock this element.
unlock_item_conditions: Vec<(I, usize, UseMode)>The item conditions required to unlock this element.
unlock_dependencies: Vec<U>A list of other unlockables upon which this one depends. If Unlockable B depends on A, then A must be unlocked before B can be unlocked.
Implementations§
Source§impl<U, K, S, I> Unlockable<U, K, S, I>
impl<U, K, S, I> Unlockable<U, K, S, I>
Source§impl<U, K, S, I> Unlockable<U, K, S, I>
impl<U, K, S, I> Unlockable<U, K, S, I>
Sourcepub fn try_get(&self) -> Option<&K>
pub fn try_get(&self) -> Option<&K>
Returns Some with the inner value if is_unlocked = true. Otherwise returns None
Sourcepub fn try_get_mut(&mut self) -> Option<&mut K>
pub fn try_get_mut(&mut self) -> Option<&mut K>
Returns Some with the inner value if is_unlocked = true. Otherwise returns None
Sourcepub fn set(&mut self, new: K)
pub fn set(&mut self, new: K)
Inserts a new value without changing the lock. Returns the previous inner value.
Sourcepub fn is_unlocked(&self) -> bool
pub fn is_unlocked(&self) -> bool
Verifies if the inner value is locked.
Trait Implementations§
Source§impl<U: Clone, K: Clone, S: Clone, I: Clone> Clone for Unlockable<U, K, S, I>
impl<U: Clone, K: Clone, S: Clone, I: Clone> Clone for Unlockable<U, K, S, I>
Source§fn clone(&self) -> Unlockable<U, K, S, I>
fn clone(&self) -> Unlockable<U, K, S, I>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'de, U, K, S, I> Deserialize<'de> for Unlockable<U, K, S, I>
impl<'de, U, K, S, I> Deserialize<'de> for Unlockable<U, K, S, I>
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
Auto Trait Implementations§
impl<U, K, S, I> Freeze for Unlockable<U, K, S, I>
impl<U, K, S, I> RefUnwindSafe for Unlockable<U, K, S, I>
impl<U, K, S, I> Send for Unlockable<U, K, S, I>
impl<U, K, S, I> Sync for Unlockable<U, K, S, I>
impl<U, K, S, I> Unpin for Unlockable<U, K, S, I>
impl<U, K, S, I> UnwindSafe for Unlockable<U, K, S, I>
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