Trait efd::Curve

source ·
pub trait Curve<const D: usize>: Sized {
    // Required methods
    fn to_curve(self) -> Vec<Coord<D>>;
    fn as_curve(&self) -> &[Coord<D>];

    // Provided methods
    fn len(&self) -> usize { ... }
    fn is_empty(&self) -> bool { ... }
    fn closed_lin(self) -> Vec<Coord<D>> { ... }
    fn popped_last(self) -> Vec<Coord<D>> { ... }
    fn is_closed(&self) -> bool { ... }
}
Expand description

Copy-on-write curve type.

Instead of using Cow<Coord<D>>, this is a trait, which does not require any conversion.

Required Methods§

source

fn to_curve(self) -> Vec<Coord<D>>

Move or copy curve type into the owned type Vec.

source

fn as_curve(&self) -> &[Coord<D>]

Elements view.

Provided Methods§

source

fn len(&self) -> usize

Length of the curve.

source

fn is_empty(&self) -> bool

Check if the curve is empty.

source

fn closed_lin(self) -> Vec<Coord<D>>

Close the curve by the first element.

Panics

Panics if the curve is empty.

source

fn popped_last(self) -> Vec<Coord<D>>

Remove the last element.

source

fn is_closed(&self) -> bool

Check if a curve’s first and end points are the same.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<const D: usize> Curve<D> for &[Coord<D>]

source§

fn to_curve(self) -> Vec<Coord<D>>

source§

fn as_curve(&self) -> &[Coord<D>]

source§

impl<const D: usize> Curve<D> for Cow<'_, [Coord<D>]>

source§

fn to_curve(self) -> Vec<Coord<D>>

source§

fn as_curve(&self) -> &[Coord<D>]

source§

impl<const D: usize> Curve<D> for Vec<Coord<D>>

source§

fn to_curve(self) -> Vec<Coord<D>>

source§

fn as_curve(&self) -> &[Coord<D>]

source§

impl<const D: usize, T: Curve<D> + Clone> Curve<D> for &T

source§

fn to_curve(self) -> Vec<Coord<D>>

source§

fn as_curve(&self) -> &[Coord<D>]

source§

impl<const D: usize, const N: usize> Curve<D> for [Coord<D>; N]

source§

fn to_curve(self) -> Vec<Coord<D>>

source§

fn as_curve(&self) -> &[Coord<D>]

Implementors§