SubLayer

Struct SubLayer 

Source
pub struct SubLayer { /* private fields */ }
Expand description

A sublayer within a layer of a tilemap.

Implementations§

Source§

impl SubLayer

Source

pub fn resize(&mut self, width: u32, height: u32)

Resize the sublayer, filling empty tiles with the sublayer’s default value.

If the width is changed, this will reallocate the data buffer!

§Sanity

The layer this is put into should be the same size as the new size.

§Panics

Panics if the resulting area overflows a u32.

Source

pub fn cell_size(&self) -> u8

Returns the size of one data cell.

Source

pub fn width(&self) -> u32

Returns the width of the sublayer.

Source

pub fn height(&self) -> u32

Returns the height of the sublayer.

Source

pub fn set_default(&mut self, default: &[u8])

Set the default value of the sublayer, resizing all cells to its length.

The default value is truncated to 4 bytes if larger.

If the new default value is larger than the old one, all cells are zero padded to the new length.

If the new default is smaller, all cells are truncated to its length.

This will only not reallocate if the length of the new default is the same as the old one!

Source

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

Get a cell by position. Returns None if out of bounds.

Source

pub fn get_mut(&mut self, (x, y): (u32, u32)) -> Option<&mut [u8]>

Get a cell by position, mutably. Returns None if out of bounds

Source

pub fn new() -> Self

Constructs a new instance from the default.

Source

pub fn iter(&self) -> impl Iterator<Item = &[u8]>

Creates an iterator over each cell of the sublayer, returning a slice.

Source

pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut [u8]>

Creates an iterator over each cell of the sublayer, returning a mutable slice.

Trait Implementations§

Source§

impl Clone for SubLayer

Source§

fn clone(&self) -> SubLayer

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SubLayer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SubLayer

Source§

fn default() -> SubLayer

Returns the “default value” for a type. Read more
Source§

impl Index<(u32, u32)> for SubLayer

Source§

fn index(&self, (x, y): (u32, u32)) -> &Self::Output

Index by position and return a reference.

§Panics

Panics if index is out of bounds.

Source§

type Output = [u8]

The returned type after indexing.
Source§

impl IndexMut<(u32, u32)> for SubLayer

Source§

fn index_mut(&mut self, (x, y): (u32, u32)) -> &mut Self::Output

Index by position and return a mutable reference.

§Panics

Panics if index is out of bounds.

Source§

impl PartialEq for SubLayer

Source§

fn eq(&self, other: &SubLayer) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SubLayer

Source§

impl StructuralPartialEq for SubLayer

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.