[][src]Struct screeps::pathfinder::LocalCostMatrix

pub struct LocalCostMatrix { /* fields omitted */ }

Methods

impl LocalCostMatrix[src]

pub fn new() -> Self[src]

pub fn set(&mut self, x: u8, y: u8, val: u8)[src]

pub fn get(&self, x: u8, y: u8) -> u8[src]

pub fn upload(&self) -> CostMatrix<'static>[src]

Copies all data into an JavaScript CostMatrix for use.

This is slower than as_uploaded, but much safer.

pub unsafe fn as_uploaded<'a>(&'a self) -> CostMatrix<'a>[src]

Temporarily exposes the bits of this matrix as a cost matrix.

Unsafety

There are two main invariants you must uphold after using this function:

  1. The CostMatrix can only be used in JS code as long as this LocalCostMatrix is alive. Doing otherwise will result in undefined behavior, mainly JS being allowed to read/ manipulate uninitialized rust memory or rust memory that's been repurposed.

  2. The set method of the cost matrix must not be used - it must be read only. This takes &self, but technically allows mutation of the inner Vec via JavaScript access. You should not use this method, or you will invoke Rust undefined behavior.

The CostMatrix returned will reference the internal data of this LocalCostMatrix.

Trait Implementations

impl Clone for LocalCostMatrix[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Default for LocalCostMatrix[src]

impl Into<Vec<u8>> for LocalCostMatrix[src]

fn into(self) -> Vec<u8>[src]

Returns a vector of bits length 2500, where each position is idx = ((x * 50) + y).

impl Debug for LocalCostMatrix[src]

impl Serialize for LocalCostMatrix[src]

impl<'de> Deserialize<'de> for LocalCostMatrix[src]

Auto Trait Implementations

Blanket Implementations

impl<T, U> IntoExpectedType<U> for T where
    U: FromExpectedType<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]