pub struct Size { /* private fields */ }
Expand description
A size cannot be created which would contain un-addressable cells.
That is, the maximum size has a width and height of one greater than the maximum i32
.
Implementations§
source§impl Size
impl Size
pub const fn try_new(
width: u32,
height: u32
) -> Result<Size, DimensionTooLargeForSize>
sourcepub fn new(width: u32, height: u32) -> Size
pub fn new(width: u32, height: u32) -> Size
Creates a new Size
.
Panics if width
or width
is greater than ::core::i32::MAX as u32 + 1
.
sourcepub const fn new_u16(width: u16, height: u16) -> Size
pub const fn new_u16(width: u16, height: u16) -> Size
Like new, but const and never panics as it’s impossible to construct an invalid size
pub fn from_coord(coord: Coord) -> Result<Size, NegativeDimension>
pub const fn to_coord(self) -> Result<Coord, DimensionTooLargeForCoord>
pub const fn get(self, axis: Axis) -> u32
pub fn get_mut(&mut self, axis: Axis) -> &mut u32
pub fn with_axis<F>(self, axis: Axis, f: F) -> Sizewhere
F: FnMut(u32) -> u32,
pub const fn try_set(
self,
axis: Axis,
value: u32
) -> Result<Size, DimensionTooLargeForSize>
pub fn set(self, axis: Axis, value: u32) -> Size
pub fn try_set_in_place(
&mut self,
axis: Axis,
value: u32
) -> Result<(), DimensionTooLargeForSize>
pub fn set_in_place(&mut self, axis: Axis, value: u32)
pub const fn try_new_axis(
this_axis: u32,
other_axis: u32,
axis: Axis
) -> Result<Size, DimensionTooLargeForSize>
pub fn new_axis(this_axis: u32, other_axis: u32, axis: Axis) -> Size
pub fn get_static<A>(self) -> u32where
A: StaticAxis,
pub fn get_static_mut<A>(&mut self) -> &mut u32where
A: StaticAxis,
pub fn with_static_axis<A, F>(self, f: F) -> Sizewhere
A: StaticAxis,
F: FnMut(u32) -> u32,
pub fn try_set_static<A>(
self,
value: u32
) -> Result<Size, DimensionTooLargeForSize>where
A: StaticAxis,
pub fn try_set_static_in_place<A>(
&mut self,
value: u32
) -> Result<(), DimensionTooLargeForSize>where
A: StaticAxis,
pub fn set_static<A>(self, value: u32) -> Sizewhere
A: StaticAxis,
pub fn set_static_in_place<A>(&mut self, value: u32)where
A: StaticAxis,
pub fn try_new_static_axis<A>(
this_axis: u32,
other_axis: u32
) -> Result<Size, DimensionTooLargeForSize>where
A: StaticAxis,
pub fn new_static_axis<A>(this_axis: u32, other_axis: u32) -> Sizewhere
A: StaticAxis,
pub fn try_set_width(self, width: u32) -> Result<Size, DimensionTooLargeForSize>
pub fn try_set_height(
self,
height: u32
) -> Result<Size, DimensionTooLargeForSize>
pub fn set_width(self, width: u32) -> Size
pub fn set_height(self, height: u32) -> Size
pub fn try_set_width_in_place(
&mut self,
width: u32
) -> Result<(), DimensionTooLargeForSize>
pub fn try_set_height_in_place(
&mut self,
height: u32
) -> Result<(), DimensionTooLargeForSize>
pub fn set_width_in_place(&mut self, width: u32)
pub fn set_height_in_place(&mut self, height: u32)
pub fn checked_sub(self, rhs: Size) -> Option<Size>
pub fn saturating_sub(self, rhs: Size) -> Size
pub const fn max_field() -> u32
pub const fn max() -> Size
pub const fn is_zero(self) -> bool
pub const fn is_valid(self, coord: Coord) -> bool
pub const fn constrain(self, coord: Coord) -> Option<Coord>
pub const fn coord_iter_row_major(self) -> CoordIterRowMajor
pub fn pairwise_max(self, other: Size) -> Size
pub fn pairwise_min(self, other: Size) -> Size
pub const fn transpose(self) -> Size
pub const fn is_empty(self) -> bool
pub const fn is_on_edge(self, _: Coord) -> bool
pub fn edge_iter(self) -> Iter
Trait Implementations§
source§impl<T> DivAssign<T> for Sizewhere
Size: Div<T, Output = Size>,
impl<T> DivAssign<T> for Sizewhere
Size: Div<T, Output = Size>,
source§fn div_assign(&mut self, rhs: T)
fn div_assign(&mut self, rhs: T)
Performs the
/=
operation. Read moresource§impl<T> MulAssign<T> for Sizewhere
Size: Mul<T, Output = Size>,
impl<T> MulAssign<T> for Sizewhere
Size: Mul<T, Output = Size>,
source§fn mul_assign(&mut self, rhs: T)
fn mul_assign(&mut self, rhs: T)
Performs the
*=
operation. Read moresource§impl Ord for Size
impl Ord for Size
source§impl PartialEq<Size> for Size
impl PartialEq<Size> for Size
source§impl PartialOrd<Size> for Size
impl PartialOrd<Size> for Size
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read more