Trait IntoData
pub trait IntoData: Sized {
Show 13 methods
// Required method
fn into_data(self) -> Data;
// Provided methods
fn raw(self) -> Data { ... }
fn unordered(self) -> Data { ... }
fn is(self, format: DataFormat) -> Data { ... }
fn is_json(self) -> Data { ... }
fn json(self) -> Data { ... }
fn is_jsonlines(self) -> Data { ... }
fn json_lines(self) -> Data { ... }
fn is_termsvg(self) -> Data { ... }
fn term_svg(self) -> Data { ... }
fn against(self, format: DataFormat) -> Data { ... }
fn against_json(self) -> Data { ... }
fn against_jsonlines(self) -> Data { ... }
}Expand description
Convert to [Data] with modifiers for expected data
Required Methods§
fn into_data(self) -> Data
fn into_data(self) -> Data
Convert to [Data], applying defaults
Provided Methods§
fn raw(self) -> Data
fn raw(self) -> Data
Remove default [filters][crate::filter] from this expected result
fn unordered(self) -> Data
fn unordered(self) -> Data
Treat lines and json arrays as unordered
§Examples
use snapbox::prelude::*;
use snapbox::str;
use snapbox::assert_data_eq;
let actual = str![[r#"["world", "hello"]"#]]
.is(snapbox::data::DataFormat::Json)
.unordered();
let expected = str![[r#"["hello", "world"]"#]]
.is(snapbox::data::DataFormat::Json)
.unordered();
assert_data_eq!(actual, expected);fn is(self, format: DataFormat) -> Data
fn is(self, format: DataFormat) -> Data
Initialize as [format][DataFormat] or [Error][DataFormat::Error]
This is generally used for expected data
§Examples
use snapbox::prelude::*;
use snapbox::str;
let expected = str![[r#"{"hello": "world"}"#]]
.is(snapbox::data::DataFormat::Json);
assert_eq!(expected.format(), snapbox::data::DataFormat::Json);fn is_json(self) -> Data
fn is_json(self) -> Data
Initialize as json or [Error][DataFormat::Error]
This is generally used for expected data
§Examples
use snapbox::prelude::*;
use snapbox::str;
let expected = str![[r#"{"hello": "world"}"#]]
.is_json();
assert_eq!(expected.format(), snapbox::data::DataFormat::Json);fn json(self) -> Data
IntoData::is_jsonfn is_jsonlines(self) -> Data
fn is_jsonlines(self) -> Data
Initialize as json lines or [Error][DataFormat::Error]
This is generally used for expected data
§Examples
use snapbox::prelude::*;
use snapbox::str;
let expected = str![[r#"{"hello": "world"}"#]]
.is_jsonlines();
assert_eq!(expected.format(), snapbox::data::DataFormat::JsonLines);fn json_lines(self) -> Data
IntoData::is_jsonlinesfn is_termsvg(self) -> Data
fn is_termsvg(self) -> Data
Initialize as Term SVG
This is generally used for expected data
fn term_svg(self) -> Data
IntoData::is_termsvgfn against(self, format: DataFormat) -> Data
fn against(self, format: DataFormat) -> Data
Override the type this snapshot will be compared against
Normally, the actual data is coerced to IntoData::is.
This allows overriding that so you can store your snapshot in a more readable, diffable
format.
§Examples
use snapbox::prelude::*;
use snapbox::str;
let expected = str![[r#"{"hello": "world"}"#]]
.against(snapbox::data::DataFormat::JsonLines);fn against_json(self) -> Data
fn against_json(self) -> Data
Initialize as json or [Error][DataFormat::Error]
This is generally used for expected data
§Examples
use snapbox::prelude::*;
use snapbox::str;
let expected = str![[r#"{"hello": "world"}"#]]
.is_json();fn against_jsonlines(self) -> Data
fn against_jsonlines(self) -> Data
Initialize as json lines or [Error][DataFormat::Error]
This is generally used for expected data
§Examples
use snapbox::prelude::*;
use snapbox::str;
let expected = str![[r#"{"hello": "world"}"#]]
.against_jsonlines();Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.