[−][src]Struct swarm_it::Slot
Represnets the Slot
object. Slots have their target payload specified
and carriers will do their best to find appropriate payload and
bring it to the slot.
Methods
impl<T: PartialEq + Eq + Hash + Copy> Slot<T>
[src]
pub fn new(
x: f64,
y: f64,
current_payload: Option<Payload<T>>,
target_payload: Option<Payload<T>>,
kind: SlotKind
) -> Slot<T>
[src]
x: f64,
y: f64,
current_payload: Option<Payload<T>>,
target_payload: Option<Payload<T>>,
kind: SlotKind
) -> Slot<T>
Creates new Slot at the position specified and with the payloads specified
Example
let empty_slot = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::CLASSIC); let slot_with_current_payload = swarm_it::Slot::<char>::new( 100.0, 100.0, Some(swarm_it::Payload::new('X')), None, swarm_it::SlotKind::CLASSIC);
pub fn get_position(&self) -> &Position
[src]
Returns current slot position
Example
let x = 100.0; let y = 200.0; let slot = swarm_it::Slot::<char>::new(x, y, None, None, swarm_it::SlotKind::CLASSIC); let position = slot.get_position(); approx::assert_abs_diff_eq!(position.x, x); approx::assert_abs_diff_eq!(position.y, y);
pub fn get_payloads(&self) -> [Option<Payload<T>>; 2]
[src]
Returns current carrier payloads.
Index | Content |
---|---|
0 | current payload |
1 | target payload |
Example
let slot_with_current_payload = swarm_it::Slot::<char>::new( 100.0, 100.0, Some(swarm_it::Payload::new('X')), None, swarm_it::SlotKind::CLASSIC); let payloads = slot_with_current_payload.get_payloads(); assert_eq!(payloads[0], Some(swarm_it::Payload::new('X'))); assert_eq!(payloads[1], None);
pub fn set_target_payload(&mut self, p: Option<Payload<T>>)
[src]
Sets target payload
Example
let mut empty_slot = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::CLASSIC); empty_slot.set_target_payload(Some(swarm_it::Payload::new('X'))); let payloads = empty_slot.get_payloads(); assert_eq!(payloads[0], None); assert_eq!(payloads[1], Some(swarm_it::Payload::new('X')));
pub fn set_payloads(&mut self, p: Option<Payload<T>>)
[src]
Sets both current and target payloads
Example
let mut empty_slot = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::CLASSIC); empty_slot.set_payloads(Some(swarm_it::Payload::new('X'))); let payloads = empty_slot.get_payloads(); assert_eq!(payloads[0], Some(swarm_it::Payload::new('X'))); assert_eq!(payloads[1], Some(swarm_it::Payload::new('X')));
pub fn is_taken_care_of(&self) -> bool
[src]
Returns true
if this slot is already addressed by any of the carriers.
It is mainly used by the library internals, but is also exposed
for the user, so it is possible to, for example, prepare different
visualization for these kind of slots.
Example
let slot = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::CLASSIC); assert_eq!(slot.is_taken_care_of(), false);
pub fn is_pit(&self) -> bool
[src]
Returns true
is slot is a pit
Example
let slot_classic = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::CLASSIC); let slot_pit = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::PIT); let slot_spawner = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::SPAWNER); assert!(slot_pit.is_pit()); assert!(!slot_classic.is_pit()); assert!(!slot_spawner.is_pit());
pub fn is_spawner(&self) -> bool
[src]
Returns true
is slot is a spawner
Example
let slot_classic = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::CLASSIC); let slot_pit = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::PIT); let slot_spawner = swarm_it::Slot::<char>::new(100.0, 100.0, None, None, swarm_it::SlotKind::SPAWNER); assert!(!slot_pit.is_spawner()); assert!(!slot_classic.is_spawner()); assert!(slot_spawner.is_spawner());
Trait Implementations
impl<T: Copy + PartialEq + Eq + Hash> Copy for Slot<T>
[src]
impl<T: Clone + PartialEq + Eq + Hash + Copy> Clone for Slot<T>
[src]
fn clone(&self) -> Slot<T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<T: Debug + PartialEq + Eq + Hash + Copy> Debug for Slot<T>
[src]
Auto Trait Implementations
impl<T> Sync for Slot<T> where
T: Sync,
T: Sync,
impl<T> Unpin for Slot<T> where
T: Unpin,
T: Unpin,
impl<T> Send for Slot<T> where
T: Send,
T: Send,
impl<T> UnwindSafe for Slot<T> where
T: UnwindSafe,
T: UnwindSafe,
impl<T> RefUnwindSafe for Slot<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,