pub trait ConvertFrom<T>: From<T> {
    // Required methods
    fn convert_from(_: T) -> Self;
    fn try_convert_from(_: T) -> Result<Self, OutOfBounds<Self>>;

    // Provided method
    fn convert_unclamped_from(val: T) -> Self { ... }
}
Expand description

A trait for converting one color from another.

convert_unclamped currently wraps the underlying From implementation.

Required Methods§

source

fn convert_from(_: T) -> Self

Convert from T with values clamped to the color defined bounds

use palette::ConvertFrom;
use palette::Limited;
use palette::{Srgb, Lch};


let rgb = Srgb::convert_from(Lch::new(50.0, 100.0, -175.0));
assert!(rgb.is_valid());
source

fn try_convert_from(_: T) -> Result<Self, OutOfBounds<Self>>

Convert from T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color.

use palette::ConvertFrom;
use palette::{Srgb, Hsl};

let rgb = match Srgb::try_convert_from(Hsl::new(150.0, 1.0, 1.1)) {
    Ok(color) => color,
    Err(err) => {
        println!("Color is out of bounds");
        err.color()
    },
};

Provided Methods§

source

fn convert_unclamped_from(val: T) -> Self

Convert from T. The resulting color might be invalid in its color space

use palette::ConvertFrom;
use palette::Limited;
use palette::{Srgb, Lch};

let rgb = Srgb::convert_unclamped_from(Lch::new(50.0, 100.0, -175.0));
assert!(!rgb.is_valid());

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T, U> ConvertFrom<T> for U
where U: From<T> + Limited,