Struct subplotlib::prelude::SubplotDataFile
source · pub struct SubplotDataFile { /* private fields */ }
Expand description
An embedded data file.
Embedded data files have names and content. The subplot template will generate
a lazy_static
containing all the data files embedded into the suite. Then
generated test functions will extract data files
If you are using them in your test steps you should take them by value:
#[step]
fn step_using_a_file(context: &mut Context, somefile: SubplotDataFile) {
// context.stash_file(somefile);
}
For the generated test to correctly recognise how to pass a file in, you must mark the argument as a file in your binding:
- when: using {somefile} as a input
function: step_using_a_file
types:
somefile: file
Implementations§
source§impl SubplotDataFile
impl SubplotDataFile
sourcepub fn new(name: &str, data: &str) -> Self
pub fn new(name: &str, data: &str) -> Self
Construct a new data file object
Typically this will only be called from the generated test suite.
The passed in name and data must be base64 encoded strings and each will
be interpreted independently. The name will be treated as a PathBuf
and the data will be stored as a slice of bytes.
Neither will be interpreted as utf8.
let data_file = SubplotDataFile::new("aGVsbG8=", "d29ybGQ=");
Panics
This will panic if the passed in strings are not correctly base64 encoded.
sourcepub fn name(&self) -> &Path
pub fn name(&self) -> &Path
Retrieve the filename
File names are returned as a borrow of a Path
since they could be
arbitrarily constructed, though typically they’ll have come from markdown
source and so likely they will be utf-8 compatible.
let data_file = SubplotDataFile::new("aGVsbG8=", "d29ybGQ=");
assert_eq!(data_file.name().display().to_string(), "hello");
sourcepub fn data(&self) -> &[u8] ⓘ
pub fn data(&self) -> &[u8] ⓘ
Retrieve the data
The data of a file is always returned as a slice of bytes. This is because files could be arbitrary data, though again, they typically will have been sourced from a Subplot document and so be utf-8 compatible.
let data_file = SubplotDataFile::new("aGVsbG8=", "d29ybGQ=");
assert_eq!(data_file.data(), b"world");