Struct exr::image::recursive::Recursive[][src]

pub struct Recursive<Inner, Value> {
    pub inner: Inner,
    pub value: Value,
}
Expand description

A recursive type-level linked list of Value entries. Mainly used to represent an arbitrary number of channels. The recursive architecture removes the need to implement traits for many different tuples.

Fields

inner: Inner

The remaining values of this linked list, probably either NoneMore or another instance of the same Recursive<Inner - 1, Value>.

value: Value

The next item in this linked list.

Implementations

impl<Inner, Value> Recursive<Inner, Value>[src]

pub fn new(inner: Inner, value: Value) -> Self[src]

Create a new recursive type. Equivalent to the manual constructor, but less verbose.

Trait Implementations

impl<Inner: CheckDuplicates> CheckDuplicates for Recursive<Inner, ChannelDescription>[src]

fn already_contains(&self, name: &Text) -> bool[src]

Check for duplicate channel names.

impl<Inner: Clone, Value: Clone> Clone for Recursive<Inner, Value>[src]

fn clone(&self) -> Recursive<Inner, Value>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<Inner: Debug, Value: Debug> Debug for Recursive<Inner, Value>[src]

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

Formats the value using the given formatter. Read more

impl<Inner: Default, Value: Default> Default for Recursive<Inner, Value>[src]

fn default() -> Recursive<Inner, Value>[src]

Returns the “default value” for a type. Read more

impl<A> IntoNonRecursive for Recursive<NoneMore, A>[src]

type NonRecursive = (A,)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B> IntoNonRecursive for Recursive<Recursive<NoneMore, A>, B>[src]

type NonRecursive = (A, B)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C> IntoNonRecursive for Recursive<Recursive<Recursive<NoneMore, A>, B>, C>[src]

type NonRecursive = (A, B, C)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>, Y>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>, Y>, Z>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>, Y>, Z>, A1>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>, Y>, Z>, A1>, B1>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>, Y>, Z>, A1>, B1>, C1>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>, Y>, Z>, A1>, B1>, C1>, D1>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>[src]

type NonRecursive = (A, B, C, D)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1, E1> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>, Y>, Z>, A1>, B1>, C1>, D1>, E1>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1, E1)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1, E1, F1> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>, K>, L>, M>, N>, O>, P>, Q>, R>, S>, T>, U>, V>, W>, X>, Y>, Z>, A1>, B1>, C1>, D1>, E1>, F1>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1, E1, F1)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>[src]

type NonRecursive = (A, B, C, D, E)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>[src]

type NonRecursive = (A, B, C, D, E, F)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>[src]

type NonRecursive = (A, B, C, D, E, F, G)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>[src]

type NonRecursive = (A, B, C, D, E, F, G, H)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<A, B, C, D, E, F, G, H, I, J> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>, G>, H>, I>, J>[src]

type NonRecursive = (A, B, C, D, E, F, G, H, I, J)

The resulting tuple type.

fn into_non_recursive(self) -> Self::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<Inner: IntoRecursive, Value> IntoRecursive for Recursive<Inner, Value>[src]

type Recursive = Recursive<Inner::Recursive, Value>

The recursive type resulting from this tuple.

fn into_recursive(self) -> Self::Recursive[src]

Create a recursive type from this tuple.

impl<InnerLayersWriter, Channels> LayersWriter for Recursive<InnerLayersWriter, (usize, LayerWriter<Channels>)> where
    InnerLayersWriter: LayersWriter,
    Channels: ChannelsWriter
[src]

fn extract_uncompressed_block(
    &self,
    headers: &[Header],
    block: BlockIndex
) -> Vec<u8>

Notable traits for Vec<u8, A>

impl<A> Write for Vec<u8, A> where
    A: Allocator
[src]

Deliver a block of pixels from a single layer to be stored in the file

impl<Inner: PartialEq, Value: PartialEq> PartialEq<Recursive<Inner, Value>> for Recursive<Inner, Value>[src]

fn eq(&self, other: &Recursive<Inner, Value>) -> bool[src]

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

fn ne(&self, other: &Recursive<Inner, Value>) -> bool[src]

This method tests for !=.

impl<Sample, InnerReader: RecursivePixelReader> RecursivePixelReader for Recursive<InnerReader, SampleReader<Sample>> where
    Sample: FromNativeSample + 'static, 
[src]

type RecursiveChannelDescriptions = Recursive<InnerReader::RecursiveChannelDescriptions, ChannelDescription>

The channel descriptions from the image. Will be converted to a tuple before being stored in SpecificChannels<_, ChannelDescriptions>. Read more

fn get_descriptions(&self) -> Self::RecursiveChannelDescriptions[src]

Returns the channel descriptions based on the channels in the file.

type RecursivePixel = Recursive<InnerReader::RecursivePixel, Sample>

The pixel type. Will be converted to a tuple at the end of the process.

fn read_pixels<'s, FullPixel>(
    &self,
    bytes: &'s [u8],
    pixels: &mut [FullPixel],
    get_pixel: impl Fn(&mut FullPixel) -> &mut Self::RecursivePixel
)
[src]

Read the line of pixels.

impl<Sample, InnerReader: RecursivePixelReader> RecursivePixelReader for Recursive<InnerReader, OptionalSampleReader<Sample>> where
    Sample: FromNativeSample + 'static, 
[src]

type RecursiveChannelDescriptions = Recursive<InnerReader::RecursiveChannelDescriptions, Option<ChannelDescription>>

The channel descriptions from the image. Will be converted to a tuple before being stored in SpecificChannels<_, ChannelDescriptions>. Read more

fn get_descriptions(&self) -> Self::RecursiveChannelDescriptions[src]

Returns the channel descriptions based on the channels in the file.

type RecursivePixel = Recursive<InnerReader::RecursivePixel, Sample>

The pixel type. Will be converted to a tuple at the end of the process.

fn read_pixels<'s, FullPixel>(
    &self,
    bytes: &'s [u8],
    pixels: &mut [FullPixel],
    get_pixel: impl Fn(&mut FullPixel) -> &mut Self::RecursivePixel
)
[src]

Read the line of pixels.

impl<Inner, InnerPixel, Sample: IntoNativeSample> RecursivePixelWriter<Recursive<InnerPixel, Sample>> for Recursive<Inner, SampleWriter<Sample>> where
    Inner: RecursivePixelWriter<InnerPixel>, 
[src]

fn write_pixels<FullPixel>(
    &self,
    bytes: &mut [u8],
    pixels: &[FullPixel],
    get_pixel: impl Fn(&FullPixel) -> &Recursive<InnerPixel, Sample>
)
[src]

Write pixels to a slice of bytes. Recursively do this for all channels.

impl<Inner, InnerPixel, Sample> RecursivePixelWriter<Recursive<InnerPixel, Sample>> for Recursive<Inner, Option<SampleWriter<Sample>>> where
    Inner: RecursivePixelWriter<InnerPixel>,
    Sample: IntoNativeSample
[src]

fn write_pixels<FullPixel>(
    &self,
    bytes: &mut [u8],
    pixels: &[FullPixel],
    get_pixel: impl Fn(&FullPixel) -> &Recursive<InnerPixel, Sample>
)
[src]

Write pixels to a slice of bytes. Recursively do this for all channels.

impl<Inner, T> ValidateResult for Recursive<Inner, T> where
    Inner: ValidateResult,
    T: ValidateResult
[src]

fn validate_result(
    &self,
    other: &Self,
    options: ValidationOptions,
    location: String
) -> ValidationResult
[src]

Compare self with the other. Exceptional behaviour: Read more

fn assert_equals_result(&self, result: &Self)[src]

Compare self with the other. Panics if not equal. Read more

impl<InnerDescriptions, InnerPixel, Sample: IntoNativeSample> WritableChannelsDescription<Recursive<InnerPixel, Sample>> for Recursive<InnerDescriptions, ChannelDescription> where
    InnerDescriptions: WritableChannelsDescription<InnerPixel>, 
[src]

type RecursiveWriter = Recursive<InnerDescriptions::RecursiveWriter, SampleWriter<Sample>>

A type that has a recursive entry for each channel in the image, which must accept the desired pixel type. Read more

fn create_recursive_writer(
    &self,
    channels: &ChannelList
) -> Self::RecursiveWriter
[src]

Create the temporary writer, accepting the sorted list of channels from channel_descriptions_list.

fn channel_descriptions_list(&self) -> SmallVec<[ChannelDescription; 5]>[src]

Return all the channels that should actually end up in the image, in any order.

impl<InnerDescriptions, InnerPixel, Sample: IntoNativeSample> WritableChannelsDescription<Recursive<InnerPixel, Sample>> for Recursive<InnerDescriptions, Option<ChannelDescription>> where
    InnerDescriptions: WritableChannelsDescription<InnerPixel>, 
[src]

type RecursiveWriter = Recursive<InnerDescriptions::RecursiveWriter, Option<SampleWriter<Sample>>>

A type that has a recursive entry for each channel in the image, which must accept the desired pixel type. Read more

fn create_recursive_writer(
    &self,
    channels: &ChannelList
) -> Self::RecursiveWriter
[src]

Create the temporary writer, accepting the sorted list of channels from channel_descriptions_list.

fn channel_descriptions_list(&self) -> SmallVec<[ChannelDescription; 5]>[src]

Return all the channels that should actually end up in the image, in any order.

impl<'slf, InnerLayers, Channels> WritableLayers<'slf> for Recursive<InnerLayers, Layer<Channels>> where
    InnerLayers: WritableLayers<'slf>,
    Channels: WritableChannels<'slf>, 
[src]

fn infer_headers(&self, image_attributes: &ImageAttributes) -> Headers[src]

Generate the file meta data for this list of layers

type Writer = Recursive<InnerLayers::Writer, (usize, LayerWriter<Channels::Writer>)>

The type of temporary writer

fn create_writer(&'slf self, headers: &[Header]) -> Self::Writer[src]

Create a temporary writer for this list of layers

impl<Inner: Copy, Value: Copy> Copy for Recursive<Inner, Value>[src]

impl<Inner: Eq, Value: Eq> Eq for Recursive<Inner, Value>[src]

impl<Inner, Value> StructuralEq for Recursive<Inner, Value>[src]

impl<Inner, Value> StructuralPartialEq for Recursive<Inner, Value>[src]

Auto Trait Implementations

impl<Inner, Value> RefUnwindSafe for Recursive<Inner, Value> where
    Inner: RefUnwindSafe,
    Value: RefUnwindSafe

impl<Inner, Value> Send for Recursive<Inner, Value> where
    Inner: Send,
    Value: Send

impl<Inner, Value> Sync for Recursive<Inner, Value> where
    Inner: Sync,
    Value: Sync

impl<Inner, Value> Unpin for Recursive<Inner, Value> where
    Inner: Unpin,
    Value: Unpin

impl<Inner, Value> UnwindSafe for Recursive<Inner, Value> where
    Inner: UnwindSafe,
    Value: 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<I> IntoTuple<<I as IntoNonRecursive>::NonRecursive> for I where
    I: IntoNonRecursive
[src]

pub fn into_tuple(Self) -> <I as IntoNonRecursive>::NonRecursive[src]

Convert this recursive type to a nice tuple.

impl<R, P> ReadPrimitive<R> for P where
    R: Read + ReadEndian<P>,
    P: Default
[src]

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>[src]

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>[src]

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>[src]

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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

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

pub fn clone_into(&self, target: &mut T)[src]

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

recently added

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

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.