font_types

Struct Point

source
#[repr(C)]
pub struct Point<T> { pub x: T, pub y: T, }
Expand description

Two dimensional point with a generic coordinate type.

Fields§

§x: T

X coordinate.

§y: T

Y coordinate.

Implementations§

source§

impl<T> Point<T>

source

pub const fn new(x: T, y: T) -> Self

Creates a new point with the given x and y coordinates.

source

pub const fn broadcast(xy: T) -> Self
where T: Copy,

Creates a new point from a single value assigned to both coordinates.

source

pub fn map<U>(self, f: impl FnMut(T) -> U) -> Point<U>

Maps Point<T> to Point<U> by applying a function to each coordinate.

Trait Implementations§

source§

impl<T> Add for Point<T>
where T: Add<Output = T>,

source§

type Output = Point<T>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<T> AddAssign for Point<T>
where T: AddAssign,

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<T: Clone> Clone for Point<T>

source§

fn clone(&self) -> Point<T>

Returns a copy 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<T: Debug> Debug for Point<T>

source§

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

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

impl<T: Default> Default for Point<T>

source§

fn default() -> Point<T>

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

impl<T> Div<T> for Point<T>
where T: Div<Output = T> + Copy,

source§

type Output = Point<T>

The resulting type after applying the / operator.
source§

fn div(self, rhs: T) -> Self::Output

Performs the / operation. Read more
source§

impl<T> Div for Point<T>
where T: Div<Output = T>,

source§

type Output = Point<T>

The resulting type after applying the / operator.
source§

fn div(self, rhs: Self) -> Self::Output

Performs the / operation. Read more
source§

impl<T> DivAssign<T> for Point<T>
where T: DivAssign + Copy,

source§

fn div_assign(&mut self, rhs: T)

Performs the /= operation. Read more
source§

impl<T> DivAssign for Point<T>
where T: DivAssign,

source§

fn div_assign(&mut self, rhs: Self)

Performs the /= operation. Read more
source§

impl<T> Mul<T> for Point<T>
where T: Mul<Output = T> + Copy,

source§

type Output = Point<T>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: T) -> Self::Output

Performs the * operation. Read more
source§

impl<T> Mul for Point<T>
where T: Mul<Output = T>,

source§

type Output = Point<T>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<T> MulAssign<T> for Point<T>
where T: MulAssign + Copy,

source§

fn mul_assign(&mut self, rhs: T)

Performs the *= operation. Read more
source§

impl<T> MulAssign for Point<T>
where T: MulAssign,

source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
source§

impl<T> Neg for Point<T>
where T: Neg<Output = T>,

source§

type Output = Point<T>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<T: PartialEq> PartialEq for Point<T>

source§

fn eq(&self, other: &Point<T>) -> 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<T> Sub for Point<T>
where T: Sub<Output = T>,

source§

type Output = Point<T>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<T> SubAssign for Point<T>
where T: SubAssign,

source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
source§

impl<T> Zeroable for Point<T>
where T: AnyBitPattern,

source§

fn zeroed() -> Self

source§

impl<T> AnyBitPattern for Point<T>
where T: AnyBitPattern,

source§

impl<T: Copy> Copy for Point<T>

source§

impl<T: Eq> Eq for Point<T>

source§

impl<T> NoUninit for Point<T>
where T: NoUninit,

SAFETY: This trait has four preconditions:

  1. All fields in the struct must implement NoUninit
  2. The struct must be #[repr(C)] or #[repr(transparent)]
  3. The struct must not contain any padding bytes
  4. The struct must contain no generic parameters

We satisfy the first and second preconditions trivially. The third condition is satisfied because the struct is repr(C) and contains two fields of the same type which guarantees no padding.

The fourth condition is obviously not satisfied which is what requires implementing this trait manually rather than deriving it. This condition only exists because the bytemuck derive macro cannot guarantee the first three conditions in a type with generic parameters.

source§

impl<T> StructuralPartialEq for Point<T>

Auto Trait Implementations§

§

impl<T> Freeze for Point<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Point<T>
where T: RefUnwindSafe,

§

impl<T> Send for Point<T>
where T: Send,

§

impl<T> Sync for Point<T>
where T: Sync,

§

impl<T> Unpin for Point<T>
where T: Unpin,

§

impl<T> UnwindSafe for Point<T>
where T: UnwindSafe,

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> CheckedBitPattern for T
where T: AnyBitPattern,

source§

type Bits = T

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
source§

fn is_valid_bit_pattern(_bits: &T) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
source§

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

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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.