Skip to main content

Displacement

Trait Displacement 

Source
pub trait Displacement<T: ?Sized> {
    type Output;

    // Required method
    fn displace(&self, other: &T) -> Self::Output;
}
Expand description

The Displacement trait defines a way to displace a value of type T by another value of type T.

The displace method takes a reference to a T and returns a new value of the associated Output type, which represents the displaced value.

§Examples

use physdes::generic::Displacement;

let a: i32 = 10;
let b: i32 = 5;
let displacement = a.displace(&b);
assert_eq!(displacement, 5);

let a: i32 = 5;
let b: i32 = 10;
let displacement = a.displace(&b);
assert_eq!(displacement, -5);

Required Associated Types§

Required Methods§

Source

fn displace(&self, other: &T) -> Self::Output

Displace the current value by the provided other value.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Displacement<i32> for i32

Implements the Displacement trait for i32 types, providing a displace method that subtracts the given i32 value from the current i32 value.

§Examples

use physdes::generic::Displacement;

let a: i32 = 10;
let b: i32 = 5;
let displacement = a.displace(&b);
assert_eq!(displacement, 5);

let a: i32 = 5;
let b: i32 = 10;
let displacement = a.displace(&b);
assert_eq!(displacement, -5);
Source§

type Output = i32

Source§

fn displace(&self, other: &i32) -> Self::Output

Implementors§

Source§

impl<T1, T2> Displacement<Point<T1, T2>> for Point<T1, T2>
where T1: Displacement<T1, Output = T1>, T2: Displacement<T2, Output = T2>,

Source§

type Output = Vector2<T1, T2>

Source§

impl<T> Displacement<Interval<T>> for Interval<T>
where T: Displacement<T, Output = T>,