Struct exr::image::recursive::NoneMore

source ·
pub struct NoneMore;
Expand description

No more recursion. Can be used within any Recursive<NoneMore, YourValue> type.

Trait Implementations§

source§

impl CheckDuplicates for NoneMore

source§

fn already_contains(&self, _: &Text) -> bool

Check for duplicate channel names.
source§

impl Clone for NoneMore

source§

fn clone(&self) -> NoneMore

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NoneMore

source§

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

Formats the value using the given formatter. Read more
source§

impl Default for NoneMore

source§

fn default() -> NoneMore

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

impl IntoNonRecursive for NoneMore

§

type NonRecursive = ()

The resulting tuple type.
source§

fn into_non_recursive(self) -> Self::NonRecursive

Convert this recursive type to a nice tuple.
source§

impl IntoRecursive for NoneMore

§

type Recursive = NoneMore

The recursive type resulting from this tuple.
source§

fn into_recursive(self) -> Self::Recursive

Create a recursive type from this tuple.
source§

impl LayersWriter for NoneMore

source§

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

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

impl PartialEq<NoneMore> for NoneMore

source§

fn eq(&self, other: &NoneMore) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl ReadSpecificChannel for NoneMore

§

type RecursivePixelReader = NoneMore

A separate internal reader for the pixels. Will be of type Recursive<_, SampleReader<_>>, depending on the pixels of the specific channel combination.
source§

fn create_recursive_reader( &self, _: &ChannelList ) -> Result<Self::RecursivePixelReader>

Create a separate internal reader for the pixels of the specific channel combination.
source§

fn required<Sample>( self, channel_name: impl Into<Text> ) -> ReadRequiredChannel<Self, Sample>

Plan to read an additional channel from the image, with the specified name. If the channel cannot be found in the image when the image is read, the image will not be loaded. The generic parameter can usually be inferred from the closure in collect_pixels.
source§

fn optional<Sample>( self, channel_name: impl Into<Text>, default_sample: Sample ) -> ReadOptionalChannel<Self, Sample>

Plan to read an additional channel from the image, with the specified name. If the file does not contain this channel, the specified default sample will be returned instead. You can check whether the channel has been loaded by checking the presence of the optional channel description before instantiating your own image. The generic parameter can usually be inferred from the closure in collect_pixels.
source§

fn collect_pixels<Pixel, PixelStorage, CreatePixels, SetPixel>( self, create_pixels: CreatePixels, set_pixel: SetPixel ) -> CollectPixels<Self, Pixel, PixelStorage, CreatePixels, SetPixel>where <Self::RecursivePixelReader as RecursivePixelReader>::RecursivePixel: IntoTuple<Pixel>, <Self::RecursivePixelReader as RecursivePixelReader>::RecursiveChannelDescriptions: IntoNonRecursive, CreatePixels: Fn(Vec2<usize>, &<<Self::RecursivePixelReader as RecursivePixelReader>::RecursiveChannelDescriptions as IntoNonRecursive>::NonRecursive) -> PixelStorage, SetPixel: Fn(&mut PixelStorage, Vec2<usize>, Pixel),

Using two closures, define how to store the pixels. The first closure creates an image, and the second closure inserts a single pixel. The type of the pixel can be defined by the second closure; it must be a tuple containing f16, f32, u32 or Sample values. See the examples for more information.
source§

impl RecursivePixelReader for NoneMore

§

type RecursiveChannelDescriptions = NoneMore

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

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

type RecursivePixel = NoneMore

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

fn read_pixels<'s, FullPixel>( &self, _: &'s [u8], _: &mut [FullPixel], _: impl Fn(&mut FullPixel) -> &mut NoneMore )

Read the line of pixels.
source§

impl RecursivePixelWriter<NoneMore> for NoneMore

source§

fn write_pixels<FullPixel>( &self, _: &mut [u8], _: &[FullPixel], _: impl Fn(&FullPixel) -> &NoneMore )

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

impl ValidateResult for NoneMore

source§

fn validate_result( &self, _: &Self, _: ValidationOptions, _: impl Fn() -> String ) -> ValidationResult

Compare self with the other. Exceptional behaviour: Read more
source§

fn assert_equals_result(&self, result: &Self)

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

impl WritableChannelsDescription<NoneMore> for NoneMore

§

type RecursiveWriter = NoneMore

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, _: &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]>

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

impl<'slf> WritableLayers<'slf> for NoneMore

source§

fn infer_headers(&self, _: &ImageAttributes) -> Headers

Generate the file meta data for this list of layers
§

type Writer = NoneMore

The type of temporary writer
source§

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

Create a temporary writer for this list of layers
source§

impl Copy for NoneMore

source§

impl Eq for NoneMore

source§

impl StructuralEq for NoneMore

source§

impl StructuralPartialEq for NoneMore

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<I> IntoTuple<<I as IntoNonRecursive>::NonRecursive> for Iwhere I: IntoNonRecursive,

source§

fn into_tuple(self) -> <I as IntoNonRecursive>::NonRecursive

Convert this recursive type to a nice tuple.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<R, P> ReadPrimitive<R> for Pwhere R: Read + ReadEndian<P>, P: Default,

source§

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().
source§

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

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

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

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

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.