Struct exr::image::SpecificChannelsBuilder[][src]

pub struct SpecificChannelsBuilder<RecursiveChannels, RecursivePixel> { /* fields omitted */ }
Expand description

Used to construct a SpecificChannels. Call with_named_channel as many times as desired, and then call with_pixels to define the colors.

Implementations

impl<RecursiveChannels: CheckDuplicates, RecursivePixel> SpecificChannelsBuilder<RecursiveChannels, RecursivePixel>[src]

pub fn with_channel<Sample: IntoSample>(
    self,
    name: impl Into<Text>
) -> SpecificChannelsBuilder<Recursive<RecursiveChannels, ChannelDescription>, Recursive<RecursivePixel, Sample>>
[src]

Add another channel to this image. Does not add the actual pixels, but instead only declares the presence of the channel. Panics if the name contains unsupported characters. Panics if a channel with the same name already exists. Use Text::new_or_none() to manually handle these cases. Use with_channel_details instead if you want to specify more options than just the name of the channel. The generic parameter can usually be inferred from the closure in with_pixels.

pub fn with_channel_details<Sample: Into<Sample>>(
    self,
    channel: ChannelDescription
) -> SpecificChannelsBuilder<Recursive<RecursiveChannels, ChannelDescription>, Recursive<RecursivePixel, Sample>>
[src]

Add another channel to this image. Does not add the actual pixels, but instead only declares the presence of the channel. Use with_channel instead if you only want to specify the name of the channel. Panics if a channel with the same name already exists. The generic parameter can usually be inferred from the closure in with_pixels.

pub fn with_pixels<Pixels>(
    self,
    get_pixel: Pixels
) -> SpecificChannels<Pixels, RecursiveChannels> where
    Pixels: GetPixel,
    <Pixels as GetPixel>::Pixel: IntoRecursive<Recursive = RecursivePixel>, 
[src]

Specify the actual pixel contents of the image. You can pass a closure that returns a color for each pixel (Fn(Vec2<usize>) -> Pixel), or you can pass your own image if it implements GetPixel. The pixel type must be a tuple with the correct number of entries, depending on the number of channels. The tuple entries can be either f16, f32, u32 or Sample. Use with_pixel_fn instead of this function, to get extra type safety for your pixel closure.

pub fn with_pixel_fn<Pixel, Pixels>(
    self,
    get_pixel: Pixels
) -> SpecificChannels<Pixels, RecursiveChannels> where
    Pixels: Sync + Fn(Vec2<usize>) -> Pixel,
    Pixel: IntoRecursive<Recursive = RecursivePixel>, 
[src]

Specify the contents of the image. The pixel type must be a tuple with the correct number of entries, depending on the number of channels. The tuple entries can be either f16, f32, u32 or Sample. Use with_pixels instead of this function, if you want to pass an object that is not a closure.

Usually, the compiler can infer the type of the pixel (for example, f16,f32,f32) from the closure. If that’s not possible, you can specify the type of the channels when declaring the channel (for example, with_named_channel::<f32>("R")).

Trait Implementations

impl<RecursiveChannels: Debug, RecursivePixel: Debug> Debug for SpecificChannelsBuilder<RecursiveChannels, RecursivePixel>[src]

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

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl<RecursiveChannels, RecursivePixel> RefUnwindSafe for SpecificChannelsBuilder<RecursiveChannels, RecursivePixel> where
    RecursiveChannels: RefUnwindSafe,
    RecursivePixel: RefUnwindSafe

impl<RecursiveChannels, RecursivePixel> Send for SpecificChannelsBuilder<RecursiveChannels, RecursivePixel> where
    RecursiveChannels: Send,
    RecursivePixel: Send

impl<RecursiveChannels, RecursivePixel> Sync for SpecificChannelsBuilder<RecursiveChannels, RecursivePixel> where
    RecursiveChannels: Sync,
    RecursivePixel: Sync

impl<RecursiveChannels, RecursivePixel> Unpin for SpecificChannelsBuilder<RecursiveChannels, RecursivePixel> where
    RecursiveChannels: Unpin,
    RecursivePixel: Unpin

impl<RecursiveChannels, RecursivePixel> UnwindSafe for SpecificChannelsBuilder<RecursiveChannels, RecursivePixel> where
    RecursiveChannels: UnwindSafe,
    RecursivePixel: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.