Skip to main content

Flip

Struct Flip 

Source
pub struct Flip;
Expand description

Mirror an image vertically: the top row becomes the bottom row.

§Access pattern and order

Flip is AccessPattern::Sequential: it reads exactly one input row per output row, reads no neighbours, and wants full-width strips — square tiles would buy it nothing. AccessPattern describes tile shape, and on shape Flip is as sequential as crop.

What Flip reverses is tile order, and that is deliberately not declared here. Op::input_regions already states the mapping exactly — output rows y0..y1 come from input rows H-y1..H-y0 — so the scheduler can derive the order itself and act on it only where it matters: against a forward-only source it inserts a materialization buffer, and against a random-access source (tiled TIFF, a memory buffer) it inserts nothing and the pipeline streams (ADR-0009).

The point is that reversal is a property of the seam, not of this op. A static “always materialize” flag here would force a full-image buffer even where the upstream could serve bands bottom-up perfectly well.

Trait Implementations§

Source§

impl Clone for Flip

Source§

fn clone(&self) -> Flip

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Flip

Source§

impl Debug for Flip

Source§

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

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

impl Default for Flip

Source§

fn default() -> Flip

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

impl Eq for Flip

Source§

impl Op for Flip

Source§

fn rescaled(&self) -> Option<Arc<dyn Op>>

A mirror permutes pixels and carries no length, so it means the same thing at any resolution.

Source§

fn name(&self) -> &'static str

A short, stable name for this op, used in diagnostics.
Source§

fn output_descriptor( &self, inputs: &[ImageDescriptor], ) -> Result<ImageDescriptor, PixelsError>

Compute the output shape from the input shapes. Read more
Source§

fn input_regions( &self, output: Region, inputs: &[ImageDescriptor], ) -> Result<Vec<Region>, PixelsError>

The input regions needed to produce output. Read more
Source§

fn access_pattern(&self) -> AccessPattern

How this op reads its inputs; drives tile negotiation (ADR-0003). Read more
Source§

fn compute( &self, inputs: &[Tile<'_>], output: &mut TileMut<'_>, ) -> Result<(), PixelsError>

Fill output from inputs — the kernel entry point. Read more
Source§

fn arity(&self) -> usize

The number of inputs this op consumes.
Source§

impl PartialEq for Flip

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Flip

Auto Trait Implementations§

§

impl Freeze for Flip

§

impl RefUnwindSafe for Flip

§

impl Send for Flip

§

impl Sync for Flip

§

impl Unpin for Flip

§

impl UnsafeUnpin for Flip

§

impl UnwindSafe for Flip

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

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<T> ToOwned for T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.