Struct serenity::utils::Colour[][src]

pub struct Colour(pub u32);
Expand description

A utility struct to help with working with the basic representation of a colour. This is particularly useful when working with a Role’s colour, as the API works with an integer value instead of an RGB value.

Instances can be created by using the struct’s associated functions. These produce presets equivalent to those found in the official client’s colour picker.

Examples

Passing in a role’s colour, and then retrieving its green component via Self::g:

use serenity::utils::Colour;

// assuming a `role` has already been bound

let green = role.colour.g();

println!("The green component is: {}", green);

Creating an instance with the Self::DARK_TEAL preset:

use serenity::utils::Colour;

let colour = Colour::DARK_TEAL;

assert_eq!(colour.tuple(), (17, 128, 106));

Colours can also be directly compared for equivalence:

use serenity::utils::Colour;

let blitz_blue = Colour::BLITZ_BLUE;
let fooyoo = Colour::FOOYOO;
let fooyoo2 = Colour::FOOYOO;
assert!(blitz_blue != fooyoo);
assert_eq!(fooyoo, fooyoo2);
assert!(blitz_blue > fooyoo);

Tuple Fields

0: u32

Implementations

Generates a new Colour with the given integer value set.

Examples

Create a new Colour, and then ensure that its inner value is equivalent to a specific RGB value, retrieved via Self::tuple:

use serenity::utils::Colour;

let colour = Colour::new(6573123);

assert_eq!(colour.tuple(), (100, 76, 67));

Generates a new Colour from an RGB value, creating an inner u32 representation.

Examples

Creating a Colour via its RGB values will set its inner u32 correctly:

use serenity::utils::Colour;

assert!(Colour::from_rgb(255, 0, 0).0 == 0xFF0000);
assert!(Colour::from_rgb(217, 23, 211).0 == 0xD917D3);

And you can then retrieve those same RGB values via its methods:

use serenity::utils::Colour;

let colour = Colour::from_rgb(217, 45, 215);

assert_eq!(colour.r(), 217);
assert_eq!(colour.g(), 45);
assert_eq!(colour.b(), 215);
assert_eq!(colour.tuple(), (217, 45, 215));

Returns the red RGB component of this Colour.

Examples
use serenity::utils::Colour;

assert_eq!(Colour::new(6573123).r(), 100);

Returns the green RGB component of this Colour.

Examples
use serenity::utils::Colour;

assert_eq!(Colour::new(6573123).g(), 76);

Returns the blue RGB component of this Colour.

Examples
use serenity::utils::Colour;

assert_eq!(Colour::new(6573123).b(), 67);

Returns a tuple of the red, green, and blue components of this Colour.

This is equivalent to creating a tuple with the return values of Self::r, Self::g, and Self::b.

Examples
use serenity::utils::Colour;

assert_eq!(Colour::new(6573123).tuple(), (100, 76, 67));

Returns a hexadecimal string of this Colour.

This is equivalent to passing the integer value through std::fmt::UpperHex with 0 padding and 6 width.

Examples
use serenity::utils::Colour;

assert_eq!(Colour::new(6573123).hex(), "644C43");

Creates a new Colour, setting its RGB value to (111, 198, 226).

Creates a new Colour, setting its RGB value to (52, 152, 219).

Creates a new Colour, setting its RGB value to (114, 137, 218).

Creates a new Colour, setting its RGB value to (32, 102, 148).

Creates a new Colour, setting its RGB value to (194, 124, 14).

Creates a new Colour, setting its RGB value to (31, 139, 76).

Creates a new Colour, setting its RGB value to (96, 125, 139).

Creates a new Colour, setting its RGB value to (173, 20, 87).

Creates a new Colour, setting its RGB value to (168, 67, 0).

Creates a new Colour, setting its RGB value to (113, 54, 138).

Creates a new Colour, setting its RGB value to (153, 45, 34).

Creates a new Colour, setting its RGB value to (17, 128, 106).

Creates a new Colour, setting its RGB value to (84, 110, 122).

Creates a new Colour, setting its RGB value to (250, 177, 237).

Creates a new Colour, setting its RGB value to (136, 130, 196).

Creates a new Colour, setting its RGB value to (17, 202, 128).

Creates a new Colour, setting its RGB value to (241, 196, 15).

Creates a new Colour, setting its RGB value to (186, 218, 85).

Creates a new Colour, setting its RGB value to (151, 156, 159).

Creates a new Colour, setting its RGB value to (149, 165, 166).

Creates a new Colour, setting its RGB value to (233, 30, 99).

Creates a new Colour, setting its RGB value to (230, 131, 151).

Creates a new Colour, setting its RGB value to (230, 126, 34).

Creates a new Colour, setting its RGB value to (155, 89, 182).

Creates a new Colour, setting its RGB value to (231, 76, 60).

Creates a new Colour, setting its RGB value to (117, 150, 255).

Creates a new Colour, setting its RGB value to (246, 219, 216).

Creates a new Colour, setting its RGB value to (26, 188, 156).

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Creates a default value for a Colour, setting the inner value to 0.

Deserialize this value from the given Serde deserializer. Read more

Constructs a Colour from RGB.

Constructs a Colour from a i32.

This is used for functions that accept Into<Colour>.

This is useful when providing hex values.

Examples
use serenity::utils::Colour;

assert_eq!(Colour::from(0xDEA584).tuple(), (222, 165, 132));

Constructs a Colour from a u32.

This is used for functions that accept Into<Colour>.

Examples
use serenity::utils::Colour;

assert_eq!(Colour::from(6573123u32).r(), 100);

Constructs a Colour from a u32.

This is used for functions that accept Into<Colour>.

Examples
use serenity::utils::Colour;

assert_eq!(Colour::from(6573123u64).r(), 100);

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more