Skip to main content

ChangeSource

Enum ChangeSource 

Source
pub enum ChangeSource<'a> {
    Diff {
        result: &'a DiffResult,
        output: &'a Image,
    },
    Ssim {
        outcome: &'a SsimOutcome,
        floor: f32,
    },
    Regions(&'a [BoundingBox]),
}
Expand description

Where the change information came from.

Each variant is what one of the producers hands back, taken by name: this crate sits above them and consumes their results, rather than either of them depending on it. What differs between the variants is only the precision of the description, and whether it needs refining.

Variants§

§

Diff

What [blazediff::diff] returns: its result plus the visualization it wrote. Changed pixels are the non-grayscale ones, so the mask is exact and is used as-is; the counts come from the diff rather than being recomputed, because it knows which pixels it excluded as anti-aliasing.

The diff must have been run with mask_options so the visualization is readable as a mask whatever colours the caller wanted.

Fields

§result: &'a DiffResult
§output: &'a Image
§

Ssim

What any blazediff_ssim metric returns. Cells scoring below floor are changed. The map’s grid is coarser than a pixel, so the boxes it yields are refined against the source pixels before anything is measured.

Fields

§outcome: &'a SsimOutcome
§floor: f32
§

Regions(&'a [BoundingBox])

Regions the caller already knows — DOM rectangles, a crop list, anything. Refined like a score map, so they may be as coarse as you like.

Auto Trait Implementations§

§

impl<'a> Freeze for ChangeSource<'a>

§

impl<'a> RefUnwindSafe for ChangeSource<'a>

§

impl<'a> Send for ChangeSource<'a>

§

impl<'a> Sync for ChangeSource<'a>

§

impl<'a> Unpin for ChangeSource<'a>

§

impl<'a> UnsafeUnpin for ChangeSource<'a>

§

impl<'a> UnwindSafe for ChangeSource<'a>

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> 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, 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.