Skip to content

Rust Map ​

rust
pub struct Map<X: Scalar, Y: Scalar, C: Scalar>

An owning, dynamically sized two-axis row-major lookup map.

new ​

rust
pub fn new(x_axis: Vec<X>, y_axis: Vec<Y>, cells: Vec<C>) -> Result<Self, Error>

Creates and validates a row-major map.

dimensions ​

rust
pub fn dimensions(&self) ->(usize, usize)

Returns (x_count, y_count).

x_axis ​

rust
pub fn x_axis(&self) -> &[X]

Returns the typed X-axis storage.

y_axis ​

rust
pub fn y_axis(&self) -> &[Y]

Returns the typed Y-axis storage.

cells ​

rust
pub fn cells(&self) -> &[C]

Returns flat row-major cell storage indexed as [y][x].

validate ​

rust
pub fn validate(&self) -> Result<(), Error>

Revalidates all native table invariants.

lookup ​

rust
pub fn lookup(&self, x: f32, y: f32) -> Result<f32, Error>

Performs a clamped bilinear lookup at (x, y).

x ​

rust
pub fn x(&self, index: usize) -> Result<X, Error>

Reads one X-axis point through the native API.

y ​

rust
pub fn y(&self, index: usize) -> Result<Y, Error>

Reads one Y-axis point through the native API.

cell ​

rust
pub fn cell(&self, x_index: usize, y_index: usize) -> Result<C, Error>

Reads one row-major map cell through the native API.

set_x ​

rust
pub fn set_x(&mut self, index: usize, value: X) -> Result<(), Error>

Replaces one X-axis point while preserving strict ordering.

set_y ​

rust
pub fn set_y(&mut self, index: usize, value: Y) -> Result<(), Error>

Replaces one Y-axis point while preserving strict ordering.

set_cell ​

rust
pub fn set_cell(&mut self, x_index: usize, y_index: usize, value: C) -> Result<(), Error>

Replaces one row-major map cell.

replace ​

rust
pub fn replace(&mut self, x_axis: &[X], y_axis: &[Y], cells: &[C]) -> Result<(), Error>

Atomically validates and copies a complete same-sized map snapshot.

Released under the MIT Licence.