ValueReader

Struct ValueReader 

Source
pub struct ValueReader<'a, R: RangeReader> { /* private fields */ }
Expand description

Reads tag values from a TIFF file.

This struct combines a RangeReader with TIFF header information to read values respecting the file’s byte order and format.

Implementations§

Source§

impl<'a, R: RangeReader> ValueReader<'a, R>

Source

pub fn new(reader: &'a R, header: &'a TiffHeader) -> Self

Create a new ValueReader.

Source

pub fn byte_order(&self) -> ByteOrder

Get the byte order from the header.

Source

pub async fn read_bytes(&self, entry: &IfdEntry) -> Result<Bytes, TiffError>

Read raw bytes for an IFD entry’s value.

For inline values, returns the bytes from the entry. For offset values, fetches the bytes from the file.

Source

pub async fn read_u32(&self, entry: &IfdEntry) -> Result<u32, TiffError>

Read a single u32 value from an entry.

Handles both Short and Long field types, converting as needed.

Source

pub async fn read_u64(&self, entry: &IfdEntry) -> Result<u64, TiffError>

Read a single u64 value from an entry.

Handles Short, Long, and Long8 field types, converting as needed.

Source

pub async fn read_u64_array( &self, entry: &IfdEntry, ) -> Result<Vec<u64>, TiffError>

Read an array of u64 values from an entry.

This is the primary method for reading TileOffsets and TileByteCounts. The entire array is fetched in a single range request for efficiency.

Handles Short, Long, and Long8 field types, converting all to u64.

Source

pub async fn read_u32_array( &self, entry: &IfdEntry, ) -> Result<Vec<u32>, TiffError>

Read an array of u32 values from an entry.

Similar to read_u64_array but returns u32 values. Useful for tile dimensions and other 32-bit array values.

Source

pub async fn read_string(&self, entry: &IfdEntry) -> Result<String, TiffError>

Read a string value from an entry (ASCII type).

The string is expected to be null-terminated. The null terminator is stripped from the result.

Source

pub async fn read_raw_bytes(&self, entry: &IfdEntry) -> Result<Bytes, TiffError>

Read raw bytes from an entry (for UNDEFINED or opaque data).

This is used for JPEGTables and other binary data.

Auto Trait Implementations§

§

impl<'a, R> Freeze for ValueReader<'a, R>

§

impl<'a, R> RefUnwindSafe for ValueReader<'a, R>
where R: RefUnwindSafe,

§

impl<'a, R> Send for ValueReader<'a, R>

§

impl<'a, R> Sync for ValueReader<'a, R>

§

impl<'a, R> Unpin for ValueReader<'a, R>

§

impl<'a, R> UnwindSafe for ValueReader<'a, R>
where R: RefUnwindSafe,

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more