Skip to main content

WriteOptions

Struct WriteOptions 

Source
#[non_exhaustive]
pub struct WriteOptions { pub compression: Option<u8>, pub version: Option<String>, pub validate: bool, }
Expand description

Tuning knobs for write_with.

Construct from Default and adjust:

use nir_rs::io::WriteOptions;

let opts = WriteOptions::default().with_compression(None);
assert_eq!(opts.compression, None);

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§compression: Option<u8>

Deflate (gzip) level for numeric array datasets, must be in 0..=9.

None writes arrays uncompressed. Values above 9 are rejected; use Self::with_compression to clamp automatically.

Three kinds of dataset are never compressed regardless of this setting:

  • Scalars. HDF5 cannot chunk them, and chunking is a prerequisite for any filter.
  • Empty arrays — any tensor with a zero-length axis. There are no bytes to compress, and a filter would still cost a chunked layout.
  • String arraysedges and MetadataValue::StringList. These are variable-length, so the dataset holds only heap descriptors and the characters live on HDF5’s global heap. A filter applies to the descriptors, not to the payload, so deflating them would add chunking overhead while compressing almost nothing.
§version: Option<String>

Version string to write, overriding NirGraph::version.

§validate: bool

Run NirGraph::validate_structure and lossless-representation checks before writing. Defaults to true.

Set this to false to rewrite a graph whose edges do not all resolve, or that contains values the wire format cannot preserve (nested graph versions, rank-0 metadata tensors). Such files exist in the wild — upstream’s own braille_noDelay_bias_zero_subgraph.nir has a subgraph edge naming a node that is not in that subgraph — and read loads them faithfully, so writing them back has to be possible. The resulting file will not load in Python nir.read with its default type checking, and may lose or change the unrepresentable values on readback.

Implementations§

Source§

impl WriteOptions

Source

pub fn with_compression(self, level: Option<u8>) -> Self

Set the deflate level for array datasets; None disables compression.

Source

pub fn with_version(self, version: impl Into<String>) -> Self

Override the version string written to /version.

Source

pub fn with_validation(self, validate: bool) -> Self

Enable or disable the pre-write structure check.

Trait Implementations§

Source§

impl Clone for WriteOptions

Source§

fn clone(&self) -> WriteOptions

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 Debug for WriteOptions

Source§

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

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

impl Default for WriteOptions

Source§

fn default() -> Self

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

impl Eq for WriteOptions

Source§

impl PartialEq for WriteOptions

Source§

fn eq(&self, other: &WriteOptions) -> 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 WriteOptions

Auto Trait Implementations§

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> 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 = 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.