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§
Trait Implementations§
source§impl<Inner: CheckDuplicates> CheckDuplicates for Recursive<Inner, ChannelDescription>
impl<Inner: CheckDuplicates> CheckDuplicates for Recursive<Inner, ChannelDescription>
source§fn already_contains(&self, name: &Text) -> bool
fn already_contains(&self, name: &Text) -> bool
Check for duplicate channel names.
source§impl<A> IntoNonRecursive for Recursive<NoneMore, A>
impl<A> IntoNonRecursive for Recursive<NoneMore, A>
source§type NonRecursive = (A,)
type NonRecursive = (A,)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§impl<A, B> IntoNonRecursive for Recursive<Recursive<NoneMore, A>, B>
impl<A, B> IntoNonRecursive for Recursive<Recursive<NoneMore, A>, B>
source§type NonRecursive = (A, B)
type NonRecursive = (A, B)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§impl<A, B, C> IntoNonRecursive for Recursive<Recursive<Recursive<NoneMore, A>, B>, C>
impl<A, B, C> IntoNonRecursive for Recursive<Recursive<Recursive<NoneMore, A>, B>, C>
source§type NonRecursive = (A, B, C)
type NonRecursive = (A, B, C)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§impl<A, B, C, D> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>
impl<A, B, C, D> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>
source§type NonRecursive = (A, B, C, D)
type NonRecursive = (A, B, C, D)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§impl<A, B, C, D, E> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>
impl<A, B, C, D, E> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>
source§type NonRecursive = (A, B, C, D, E)
type NonRecursive = (A, B, C, D, E)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§impl<A, B, C, D, E, F> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>
impl<A, B, C, D, E, F> IntoNonRecursive for Recursive<Recursive<Recursive<Recursive<Recursive<Recursive<NoneMore, A>, B>, C>, D>, E>, F>
source§type NonRecursive = (A, B, C, D, E, F)
type NonRecursive = (A, B, C, D, E, F)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G)
type NonRecursive = (A, B, C, D, E, F, G)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H)
type NonRecursive = (A, B, C, D, E, F, G, H)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I)
type NonRecursive = (A, B, C, D, E, F, G, H, I)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)
type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)
The resulting tuple type.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§type NonRecursive = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§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>
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>
source§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)
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.
source§fn into_non_recursive(self) -> Self::NonRecursive
fn into_non_recursive(self) -> Self::NonRecursive
Convert this recursive type to a nice tuple.
source§impl<Inner: IntoRecursive, Value> IntoRecursive for Recursive<Inner, Value>
impl<Inner: IntoRecursive, Value> IntoRecursive for Recursive<Inner, Value>
source§type Recursive = Recursive<<Inner as IntoRecursive>::Recursive, Value>
type Recursive = Recursive<<Inner as IntoRecursive>::Recursive, Value>
The recursive type resulting from this tuple.
source§fn into_recursive(self) -> Self::Recursive
fn into_recursive(self) -> Self::Recursive
Create a recursive type from this tuple.
source§impl<InnerLayersWriter, Channels> LayersWriter for Recursive<InnerLayersWriter, (usize, LayerWriter<Channels>)>where
InnerLayersWriter: LayersWriter,
Channels: ChannelsWriter,
impl<InnerLayersWriter, Channels> LayersWriter for Recursive<InnerLayersWriter, (usize, LayerWriter<Channels>)>where
InnerLayersWriter: LayersWriter,
Channels: ChannelsWriter,
source§fn extract_uncompressed_block(
&self,
headers: &[Header],
block: BlockIndex,
) -> Vec<u8> ⓘ
fn extract_uncompressed_block( &self, headers: &[Header], block: BlockIndex, ) -> Vec<u8> ⓘ
Deliver a block of pixels from a single layer to be stored in the file
source§impl<Sample, InnerReader: RecursivePixelReader> RecursivePixelReader for Recursive<InnerReader, OptionalSampleReader<Sample>>where
Sample: FromNativeSample + 'static,
impl<Sample, InnerReader: RecursivePixelReader> RecursivePixelReader for Recursive<InnerReader, OptionalSampleReader<Sample>>where
Sample: FromNativeSample + 'static,
source§type RecursiveChannelDescriptions = Recursive<<InnerReader as RecursivePixelReader>::RecursiveChannelDescriptions, Option<ChannelDescription>>
type RecursiveChannelDescriptions = Recursive<<InnerReader as RecursivePixelReader>::RecursiveChannelDescriptions, Option<ChannelDescription>>
The channel descriptions from the image.
Will be converted to a tuple before being stored in
SpecificChannels<_, ChannelDescriptions>
.source§fn get_descriptions(&self) -> Self::RecursiveChannelDescriptions
fn get_descriptions(&self) -> Self::RecursiveChannelDescriptions
Returns the channel descriptions based on the channels in the file.
source§type RecursivePixel = Recursive<<InnerReader as RecursivePixelReader>::RecursivePixel, Sample>
type RecursivePixel = Recursive<<InnerReader as RecursivePixelReader>::RecursivePixel, Sample>
The pixel type. Will be converted to a tuple at the end of the process.
source§fn read_pixels<'s, FullPixel>(
&self,
bytes: &'s [u8],
pixels: &mut [FullPixel],
get_pixel: impl Fn(&mut FullPixel) -> &mut Self::RecursivePixel,
)
fn read_pixels<'s, FullPixel>( &self, bytes: &'s [u8], pixels: &mut [FullPixel], get_pixel: impl Fn(&mut FullPixel) -> &mut Self::RecursivePixel, )
Read the line of pixels.
source§impl<Sample, InnerReader: RecursivePixelReader> RecursivePixelReader for Recursive<InnerReader, SampleReader<Sample>>where
Sample: FromNativeSample + 'static,
impl<Sample, InnerReader: RecursivePixelReader> RecursivePixelReader for Recursive<InnerReader, SampleReader<Sample>>where
Sample: FromNativeSample + 'static,
source§type RecursiveChannelDescriptions = Recursive<<InnerReader as RecursivePixelReader>::RecursiveChannelDescriptions, ChannelDescription>
type RecursiveChannelDescriptions = Recursive<<InnerReader as RecursivePixelReader>::RecursiveChannelDescriptions, ChannelDescription>
The channel descriptions from the image.
Will be converted to a tuple before being stored in
SpecificChannels<_, ChannelDescriptions>
.source§fn get_descriptions(&self) -> Self::RecursiveChannelDescriptions
fn get_descriptions(&self) -> Self::RecursiveChannelDescriptions
Returns the channel descriptions based on the channels in the file.
source§type RecursivePixel = Recursive<<InnerReader as RecursivePixelReader>::RecursivePixel, Sample>
type RecursivePixel = Recursive<<InnerReader as RecursivePixelReader>::RecursivePixel, Sample>
The pixel type. Will be converted to a tuple at the end of the process.
source§fn read_pixels<'s, FullPixel>(
&self,
bytes: &'s [u8],
pixels: &mut [FullPixel],
get_pixel: impl Fn(&mut FullPixel) -> &mut Self::RecursivePixel,
)
fn read_pixels<'s, FullPixel>( &self, bytes: &'s [u8], pixels: &mut [FullPixel], get_pixel: impl Fn(&mut FullPixel) -> &mut Self::RecursivePixel, )
Read the line of pixels.
source§impl<Inner, InnerPixel, Sample> RecursivePixelWriter<Recursive<InnerPixel, Sample>> for Recursive<Inner, Option<SampleWriter<Sample>>>where
Inner: RecursivePixelWriter<InnerPixel>,
Sample: IntoNativeSample,
impl<Inner, InnerPixel, Sample> RecursivePixelWriter<Recursive<InnerPixel, Sample>> for Recursive<Inner, Option<SampleWriter<Sample>>>where
Inner: RecursivePixelWriter<InnerPixel>,
Sample: IntoNativeSample,
source§fn write_pixels<FullPixel>(
&self,
bytes: &mut [u8],
pixels: &[FullPixel],
get_pixel: impl Fn(&FullPixel) -> &Recursive<InnerPixel, Sample>,
)
fn write_pixels<FullPixel>( &self, bytes: &mut [u8], pixels: &[FullPixel], get_pixel: impl Fn(&FullPixel) -> &Recursive<InnerPixel, Sample>, )
Write pixels to a slice of bytes. Recursively do this for all channels.
source§impl<Inner, InnerPixel, Sample: IntoNativeSample> RecursivePixelWriter<Recursive<InnerPixel, Sample>> for Recursive<Inner, SampleWriter<Sample>>where
Inner: RecursivePixelWriter<InnerPixel>,
impl<Inner, InnerPixel, Sample: IntoNativeSample> RecursivePixelWriter<Recursive<InnerPixel, Sample>> for Recursive<Inner, SampleWriter<Sample>>where
Inner: RecursivePixelWriter<InnerPixel>,
source§fn write_pixels<FullPixel>(
&self,
bytes: &mut [u8],
pixels: &[FullPixel],
get_pixel: impl Fn(&FullPixel) -> &Recursive<InnerPixel, Sample>,
)
fn write_pixels<FullPixel>( &self, bytes: &mut [u8], pixels: &[FullPixel], get_pixel: impl Fn(&FullPixel) -> &Recursive<InnerPixel, Sample>, )
Write pixels to a slice of bytes. Recursively do this for all channels.
source§impl<Inner, T> ValidateResult for Recursive<Inner, T>where
Inner: ValidateResult,
T: ValidateResult,
impl<Inner, T> ValidateResult for Recursive<Inner, T>where
Inner: ValidateResult,
T: ValidateResult,
source§fn validate_result(
&self,
other: &Self,
options: ValidationOptions,
location: impl Fn() -> String,
) -> ValidationResult
fn validate_result( &self, other: &Self, options: ValidationOptions, location: impl Fn() -> String, ) -> ValidationResult
Compare self with the other.
Exceptional behaviour: Read more
source§fn assert_equals_result(&self, result: &Self)
fn assert_equals_result(&self, result: &Self)
Compare self with the other. Panics if not equal. Read more
source§impl<InnerDescriptions, InnerPixel, Sample: IntoNativeSample> WritableChannelsDescription<Recursive<InnerPixel, Sample>> for Recursive<InnerDescriptions, ChannelDescription>where
InnerDescriptions: WritableChannelsDescription<InnerPixel>,
impl<InnerDescriptions, InnerPixel, Sample: IntoNativeSample> WritableChannelsDescription<Recursive<InnerPixel, Sample>> for Recursive<InnerDescriptions, ChannelDescription>where
InnerDescriptions: WritableChannelsDescription<InnerPixel>,
source§type RecursiveWriter = Recursive<<InnerDescriptions as WritableChannelsDescription<InnerPixel>>::RecursiveWriter, SampleWriter<Sample>>
type RecursiveWriter = Recursive<<InnerDescriptions as WritableChannelsDescription<InnerPixel>>::RecursiveWriter, SampleWriter<Sample>>
A type that has a recursive entry for each channel in the image,
which must accept the desired pixel type.
source§fn create_recursive_writer(
&self,
channels: &ChannelList,
) -> Self::RecursiveWriter
fn create_recursive_writer( &self, channels: &ChannelList, ) -> Self::RecursiveWriter
Create the temporary writer, accepting the sorted list of channels from
channel_descriptions_list
.source§fn channel_descriptions_list(&self) -> SmallVec<[ChannelDescription; 5]> ⓘ
fn channel_descriptions_list(&self) -> SmallVec<[ChannelDescription; 5]> ⓘ
Return all the channels that should actually end up in the image, in any order.
source§impl<InnerDescriptions, InnerPixel, Sample: IntoNativeSample> WritableChannelsDescription<Recursive<InnerPixel, Sample>> for Recursive<InnerDescriptions, Option<ChannelDescription>>where
InnerDescriptions: WritableChannelsDescription<InnerPixel>,
impl<InnerDescriptions, InnerPixel, Sample: IntoNativeSample> WritableChannelsDescription<Recursive<InnerPixel, Sample>> for Recursive<InnerDescriptions, Option<ChannelDescription>>where
InnerDescriptions: WritableChannelsDescription<InnerPixel>,
source§type RecursiveWriter = Recursive<<InnerDescriptions as WritableChannelsDescription<InnerPixel>>::RecursiveWriter, Option<SampleWriter<Sample>>>
type RecursiveWriter = Recursive<<InnerDescriptions as WritableChannelsDescription<InnerPixel>>::RecursiveWriter, Option<SampleWriter<Sample>>>
A type that has a recursive entry for each channel in the image,
which must accept the desired pixel type.
source§fn create_recursive_writer(
&self,
channels: &ChannelList,
) -> Self::RecursiveWriter
fn create_recursive_writer( &self, channels: &ChannelList, ) -> Self::RecursiveWriter
Create the temporary writer, accepting the sorted list of channels from
channel_descriptions_list
.source§fn channel_descriptions_list(&self) -> SmallVec<[ChannelDescription; 5]> ⓘ
fn channel_descriptions_list(&self) -> SmallVec<[ChannelDescription; 5]> ⓘ
Return all the channels that should actually end up in the image, in any order.
source§impl<'slf, InnerLayers, Channels> WritableLayers<'slf> for Recursive<InnerLayers, Layer<Channels>>where
InnerLayers: WritableLayers<'slf>,
Channels: WritableChannels<'slf>,
impl<'slf, InnerLayers, Channels> WritableLayers<'slf> for Recursive<InnerLayers, Layer<Channels>>where
InnerLayers: WritableLayers<'slf>,
Channels: WritableChannels<'slf>,
source§fn infer_headers(&self, image_attributes: &ImageAttributes) -> Headers
fn infer_headers(&self, image_attributes: &ImageAttributes) -> Headers
Generate the file meta data for this list of layers
source§type Writer = Recursive<<InnerLayers as WritableLayers<'slf>>::Writer, (usize, LayerWriter<<Channels as WritableChannels<'slf>>::Writer>)>
type Writer = Recursive<<InnerLayers as WritableLayers<'slf>>::Writer, (usize, LayerWriter<<Channels as WritableChannels<'slf>>::Writer>)>
The type of temporary writer
source§fn create_writer(&'slf self, headers: &[Header]) -> Self::Writer
fn create_writer(&'slf self, headers: &[Header]) -> Self::Writer
Create a temporary writer for this list of layers
impl<Inner: Copy, Value: Copy> Copy for Recursive<Inner, Value>
impl<Inner: Eq, Value: Eq> Eq for Recursive<Inner, Value>
impl<Inner, Value> StructuralPartialEq for Recursive<Inner, Value>
Auto Trait Implementations§
impl<Inner, Value> Freeze for Recursive<Inner, Value>
impl<Inner, Value> RefUnwindSafe for Recursive<Inner, Value>where
Inner: RefUnwindSafe,
Value: RefUnwindSafe,
impl<Inner, Value> Send for Recursive<Inner, Value>
impl<Inner, Value> Sync for Recursive<Inner, Value>
impl<Inner, Value> Unpin for Recursive<Inner, Value>
impl<Inner, Value> UnwindSafe for Recursive<Inner, Value>where
Inner: UnwindSafe,
Value: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<I> IntoTuple<<I as IntoNonRecursive>::NonRecursive> for Iwhere
I: IntoNonRecursive,
impl<I> IntoTuple<<I as IntoNonRecursive>::NonRecursive> for Iwhere
I: IntoNonRecursive,
source§fn into_tuple(self) -> <I as IntoNonRecursive>::NonRecursive
fn into_tuple(self) -> <I as IntoNonRecursive>::NonRecursive
Convert this recursive type to a nice tuple.
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian()
.