#[repr(i32)]pub enum Domain {
Unspecified = 0,
Subsurface = 1,
Surface = 2,
Air = 3,
}Expand description
Operational domain (altitude layer) for a node or capability
Domains define where a platform operates and what it can detect/engage. Cross-domain operations require specific capability combinations.
Variants§
Unspecified = 0
Unspecified domain (defaults to Surface)
Subsurface = 1
Subsurface operations (underwater, underground)
- Submarines, UUVs, tunneling systems
- Detectable only by sonar/acoustic sensors
- Cannot directly engage air targets
Surface = 2
Surface operations (ground, water surface)
- Ground vehicles, ships, operators
- Terrain affects movement and LOS
- Can engage both subsurface (with ASW) and air (with ADA)
Air = 3
Air operations (airborne platforms)
- Aircraft, drones, missiles
- Full visibility, high mobility
- Cannot detect subsurface without specialized sensors
Implementations§
Source§impl Domain
impl Domain
Sourcepub fn can_detect(&self, target: Domain) -> bool
pub fn can_detect(&self, target: Domain) -> bool
Check if this domain can natively detect the target domain
Returns true if sensors in this domain can typically detect targets in the target domain without special equipment.
Sourcepub fn can_engage(&self, target: Domain) -> bool
pub fn can_engage(&self, target: Domain) -> bool
Check if this domain can engage the target domain
Returns true if weapons from this domain can reach targets in the target domain.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Domain
impl<'de> Deserialize<'de> for Domain
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 Copy for Domain
impl Eq for Domain
impl StructuralPartialEq for Domain
Auto Trait Implementations§
impl Freeze for Domain
impl RefUnwindSafe for Domain
impl Send for Domain
impl Sync for Domain
impl Unpin for Domain
impl UnsafeUnpin for Domain
impl UnwindSafe for Domain
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.