Skip to main content

## Data

# Struct Data

    pub struct Data {
        pub(crate) inner: Box<DataInner>,
    }

Expand description

Test fixture, actual output, or expected result

This provides conveniences for tracking the intended format (binary vs text).

## Fields§

§`inner: Box<DataInner>`

## Implementations§

§

### impl Data

#### §Constructors

See also

- `str!` for inline snapshots
- `file!` for external snapshots
- `ToString` for verifying a `Display` representation
- `ToDebug` for verifying a debug representation
- `IntoJson` for verifying the serde representation
- `IntoData` for modifying `expected`

#### pub fn binary(raw: impl Into<Vec<u8>>) -> Data

Mark the data as binary (no post-processing)

#### pub fn text(raw: impl Into<String>) -> Data

Mark the data as text (post-processing)

#### pub fn json(raw: impl Into<Value>) -> Data

#### pub fn jsonlines(raw: impl Into<Vec<Value>>) -> Data

#### pub fn new() -> Data

Empty test data

#### pub fn read_from(path: &Path, data_format: Option<DataFormat>) -> Data

Load `expected` data from a file

#### pub fn raw(self) -> Data

Remove default `filters` from this `expected` result

#### pub fn unordered(self) -> Data

Treat lines and json arrays as unordered

§

### impl Data

#### §Assertion frameworks operations

For example, see `OutputAssert`

#### pub fn try_read_from( path: &Path, data_format: Option<DataFormat>, ) -> Result<Data, Error>

Load `expected` data from a file

#### pub fn write_to(&self, source: &DataSource) -> Result<(), Error>

Overwrite a snapshot

#### pub fn write_to_path(&self, path: &Path) -> Result<(), Error>

Overwrite a snapshot

#### pub fn render(&self) -> Option<String>

Return the underlying `String`

Note: this will not inspect binary data for being a valid `String`.

#### pub fn to_bytes(&self) -> Result<Vec<u8>, Error>

#### pub fn is(self, format: DataFormat) -> Data

Initialize `Self` as `format` or `Error`

This is generally used for `expected` data

#### pub fn coerce_to(self, format: DataFormat) -> Data

Convert `Self` to `format` if possible

This is generally used on `actual` data to make it match `expected`

#### pub fn source(&self) -> Option<&DataSource>

Location the data came from

#### pub fn format(&self) -> DataFormat

Outputs the current `DataFormat` of the underlying data

## Trait Implementations§

§

### impl Clone for Data

§

#### fn clone(&self) -> Data

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
§

### impl Debug for Data

§

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

Formats the value using the given formatter. Read more
§

### impl Default for Data

§

#### fn default() -> Data

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

### impl Display for Data

§

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

Formats the value using the given formatter. Read more
§

### impl Eq for Data

§

### impl<'b> From<&'b [u8]> for Data

§

#### fn from(other: &'b [u8]) -> Data

Converts to this type from the input type.
§

### impl<'d> From<&'d Data> for Data

§

#### fn from(other: &'d Data) -> Data

Converts to this type from the input type.
§

### impl<'s> From<&'s String> for Data

§

#### fn from(other: &'s String) -> Data

Converts to this type from the input type.
§

### impl<'s> From<&'s str> for Data

§

#### fn from(other: &'s str) -> Data

Converts to this type from the input type.
§

### impl From<Inline> for Data

§

#### fn from(other: Inline) -> Data

Converts to this type from the input type.
§

### impl From<String> for Data

§

#### fn from(other: String) -> Data

Converts to this type from the input type.
§

### impl From<Vec<u8>> for Data

§

#### fn from(other: Vec<u8>) -> Data

Converts to this type from the input type.
§

### impl IntoData for Data

§

#### fn into_data(self) -> Data

Convert to `Data`, applying defaults
§

#### fn raw(self) -> Data

Remove default `filters` from this `expected` result
§

#### fn unordered(self) -> Data

Treat lines and json arrays as unordered Read more
§

#### fn is(self, format: DataFormat) -> Data

Initialize as `format` or `Error` Read more
§

#### fn is_json(self) -> Data

Initialize as json or `Error` Read more
§

#### fn json(self) -> Data

👎Deprecated since 0.6.13:

Replaced with `IntoData::is_json`

§

#### fn is_jsonlines(self) -> Data

Initialize as json lines or `Error` Read more
§

#### fn json_lines(self) -> Data

👎Deprecated since 0.6.13:

Replaced with `IntoData::is_jsonlines`

§

#### fn is_termsvg(self) -> Data

Initialize as Term SVG Read more
§

#### fn term_svg(self) -> Data

👎Deprecated since 0.6.13:

Replaced with `IntoData::is_termsvg`

§

#### fn against(self, format: DataFormat) -> Data

Override the type this snapshot will be compared against Read more
§

#### fn against_json(self) -> Data

Initialize as json or `Error` Read more
§

#### fn against_jsonlines(self) -> Data

Initialize as json lines or `Error` Read more
§

### impl IntoData for &Data

§

#### fn into_data(self) -> Data

Convert to `Data`, applying defaults
§

#### fn raw(self) -> Data

Remove default `filters` from this `expected` result
§

#### fn unordered(self) -> Data

Treat lines and json arrays as unordered Read more
§

#### fn is(self, format: DataFormat) -> Data

Initialize as `format` or `Error` Read more
§

#### fn is_json(self) -> Data

Initialize as json or `Error` Read more
§

#### fn json(self) -> Data

👎Deprecated since 0.6.13:

Replaced with `IntoData::is_json`

§

#### fn is_jsonlines(self) -> Data

Initialize as json lines or `Error` Read more
§

#### fn json_lines(self) -> Data

👎Deprecated since 0.6.13:

Replaced with `IntoData::is_jsonlines`

§

#### fn is_termsvg(self) -> Data

Initialize as Term SVG Read more
§

#### fn term_svg(self) -> Data

👎Deprecated since 0.6.13:

Replaced with `IntoData::is_termsvg`

§

#### fn against(self, format: DataFormat) -> Data

Override the type this snapshot will be compared against Read more
§

#### fn against_json(self) -> Data

Initialize as json or `Error` Read more
§

#### fn against_jsonlines(self) -> Data

Initialize as json lines or `Error` Read more
§

### impl PartialEq for Data

§

#### fn eq(&self, other: &Data) -> bool

Equality operator `==`. Read more
1.0.0 (const: unstable) · Source§

#### fn ne(&self, other: &Rhs) -> bool

Inequality operator `!=`. Read more

## Auto Trait Implementations§

§

### impl Freeze for Data

§

### impl RefUnwindSafe for Data

§

### impl Send for Data

§

### impl Sync for Data

§

### impl Unpin for Data

§

### impl UnsafeUnpin for Data

§

### impl UnwindSafe for Data

## 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
§

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

§

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

§

### impl<T> Instrument for T

§

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

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

#### 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
§

### impl<T> Pointable for T

§

#### const ALIGN: usize

The alignment of pointer.
§

#### type Init = T

The type for initializers.
§

#### unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

#### unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

#### unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

#### unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

### impl<T> Same for T

Source§

#### type Output = T

Should always be `Self`
§

### impl<D> ToDebug for D
where D: Debug,

§

#### fn to_debug(&self) -> Data

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> ToString for T
where T: Display + ?Sized,

Source§

#### fn to_string(&self) -> String

Converts the given value to a `String`. 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.
§

### impl<T> WithSubscriber for T

§

#### 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
§

#### fn with_current_subscriber(self) -> WithDispatch<Self>

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

## Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain `repr(...)` attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 8 bytes