Struct CompressedDeepScanLineBlock

pub struct CompressedDeepScanLineBlock { pub y_coordinate: i32, pub decompressed_sample_data_size: usize, pub compressed_pixel_offset_table: Vec<i8>, pub compressed_sample_data_le: Vec<u8> }

This Block consists of one or more deep scan lines. Corresponds to type attribute deepscanline. The byte data is in little-endian format, as these bytes will be written into the file directly.

Fields

y_coordinate: i32

The block's y coordinate is the pixel space y coordinate of the top scan line in the block. The top scan line block in the image is aligned with the top edge of the data window.

decompressed_sample_data_size: usize

Count of samples.

compressed_pixel_offset_table: Vec<i8>

The pixel offset table is a list of integers, one for each pixel column within the data window. Each entry in the table indicates the total number of samples required to store the pixel in it as well as all pixels to the left of it.

compressed_sample_data_le: Vec<u8>

One or more scan lines may be stored together as a scan line block. The number of scan lines per block depends on how the pixel data are compressed. For each line in the tile, for each channel, the row values are contiguous.

Implementations

impl CompressedDeepScanLineBlock

fn write<W: Write>(&self, write: &mut W) -> UnitResult

Without validation, write this instance to the byte stream.

fn read(read: &mut impl Read, max_block_byte_size: usize) -> Result<Self>

Read the value without validating.

Trait Implementations

impl Clone for CompressedDeepScanLineBlock

fn clone(&self) -> Self

impl Debug for CompressedDeepScanLineBlock

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

Auto Trait Implementations

impl Freeze for CompressedDeepScanLineBlock

impl RefUnwindSafe for CompressedDeepScanLineBlock

impl Send for CompressedDeepScanLineBlock

impl Sync for CompressedDeepScanLineBlock

impl Unpin for CompressedDeepScanLineBlock

impl UnsafeUnpin for CompressedDeepScanLineBlock

impl UnwindSafe for CompressedDeepScanLineBlock

Blanket Implementations

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for CompressedDeepScanLineBlock where ST: ?Sized, DT: ?Sized,

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for CompressedDeepScanLineBlock where ST: ?Sized, DT: ?Sized,

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

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

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

impl<T> From<T> for CompressedDeepScanLineBlock

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Pointable for CompressedDeepScanLineBlock

const ALIGN: usize = _;
type Init = T;
unsafe fn init(init: <T as Pointable>::Init) -> usize
unsafe fn deref<'a>(ptr: usize) -> &'a T
unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
unsafe fn drop(ptr: usize)

impl<T> Read<Exclusive, BecauseExclusive> for CompressedDeepScanLineBlock where T: ?Sized,

impl<T> ToOwned for CompressedDeepScanLineBlock where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T, U> Into<U> for CompressedDeepScanLineBlock where U: From<T>,

fn into(self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom<U> for CompressedDeepScanLineBlock where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

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

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