Struct tiff_encoder::ByteBlock

source ·
pub struct ByteBlock(pub Vec<u8>);
Expand description

Datablock that consists of a list of bytes.

It is possible to store any block of data in a ByteBlock, but that would require to know the Endianness of the file beforehand, so the bytes are written in the correct order.

Using a Datablock, on the other hand, allows to make use of the functionality of an EndianFile, so the data can be written without worrying about the endianness.

Examples

Creating a ByteBlock from a Vec<u8>:

use tiff_encoder::*;
 
// A vector holding arbitrary u8 data.
// This is the data we want to store as a Byteblock.
let data_8bits: Vec<u8> = vec![0; 65536];

// Create an Offsets of a single Byteblock from the buffer.
// This is the value that can be used directly as an IFD entry value.
let byte_block = ByteBlock::single(data_8bits);

Creating a ByteBlock from a Vec<u32>:

// Crate byteorder will be used to write 32-bit information in a 8-bit buffer.
use byteorder::io::WriteBytesExt;
 
use tiff_encoder::*;
 
 
// A vector holding arbitrary u32 data.
// This is the data we want to store as a Byteblock.
let data_32bits: Vec<u32> = vec![0; 65536];

// First, let's store the data in a u8 buffer.
let mut image_bytes = Vec::with_capacity(262144); // 65536*4 (each u32 has a size of 4 bytes)
for val in data_32bits {
    // A little endian TIFF file is assumed in this example.
    image_bytes.write_u32::<LittleEndian>(val).unwrap();
}

// Create an Offsets of a single Byteblock from the buffer.
// This is the value that can be used directly as an IFD entry value.
let byte_block = ByteBlock::single(image_bytes);

Tuple Fields§

§0: Vec<u8>

Implementations§

Constructs an Offsets of ByteBlocks from a vector of vectors of bytes.

Each vector of bytes represents one ByteBlock.

Constructs an Offsets from a vector of bytes.

This vector of bytes represents a single ByteBlock.

Trait Implementations§

The number of bytes occupied by this Datablock. Read more
Writes this Datablock to an EndianFile. The number of bytes written must be exactly same number as returned by size(&self). Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.