pub trait ReadChannels<'s> {
    type Reader: ChannelsReader;

    // Required method
    fn create_channels_reader(&'s self, header: &Header) -> Result<Self::Reader>;

    // Provided methods
    fn first_valid_layer(self) -> ReadFirstValidLayer<Self>
       where Self: Sized { ... }
    fn all_layers(self) -> ReadAllLayers<Self>
       where Self: Sized { ... }
}
Expand description

A template that creates a ChannelsReader once for all channels per layer.

Required Associated Types§

source

type Reader: ChannelsReader

The type of the temporary channels reader

Required Methods§

source

fn create_channels_reader(&'s self, header: &Header) -> Result<Self::Reader>

Create a single reader for all channels of a specific layer

Provided Methods§

source

fn first_valid_layer(self) -> ReadFirstValidLayer<Self>where Self: Sized,

Read only the first layer which meets the previously specified requirements For example, skips layers with deep data, if specified earlier. Aborts if the image contains no layers.

source

fn all_layers(self) -> ReadAllLayers<Self>where Self: Sized,

Reads all layers, including an empty list. Aborts if any of the layers are invalid, even if only one of the layers contains unexpected data.

Implementors§

source§

impl<'s, InnerChannels, Pixel, PixelStorage, CreatePixels, SetPixel> ReadChannels<'s> for CollectPixels<InnerChannels, Pixel, PixelStorage, CreatePixels, SetPixel>where InnerChannels: ReadSpecificChannel, <InnerChannels::RecursivePixelReader as RecursivePixelReader>::RecursivePixel: IntoTuple<Pixel>, <InnerChannels::RecursivePixelReader as RecursivePixelReader>::RecursiveChannelDescriptions: IntoNonRecursive, CreatePixels: Fn(Vec2<usize>, &<<InnerChannels::RecursivePixelReader as RecursivePixelReader>::RecursiveChannelDescriptions as IntoNonRecursive>::NonRecursive) -> PixelStorage, SetPixel: Fn(&mut PixelStorage, Vec2<usize>, Pixel) + 's,

§

type Reader = SpecificChannelsReader<PixelStorage, &'s SetPixel, <InnerChannels as ReadSpecificChannel>::RecursivePixelReader, Pixel>

source§

impl<'s, S: 's + ReadSamples> ReadChannels<'s> for ReadAnyChannels<S>