pub struct EvalSession { /* private fields */ }Expand description
Evaluation session for codec comparison.
§Example
ⓘ
use codec_eval::{EvalSession, EvalConfig, ViewingCondition, ImageData};
let config = EvalConfig::builder()
.report_dir("./reports")
.viewing(ViewingCondition::desktop())
.build();
let mut session = EvalSession::new(config);
session.add_codec("my-codec", "1.0.0", Box::new(|image, request| {
// Encode the image
Ok(encoded_bytes)
}));
let report = session.evaluate_image("test.png", image_data)?;Implementations§
Source§impl EvalSession
impl EvalSession
Sourcepub fn new(config: EvalConfig) -> Self
pub fn new(config: EvalConfig) -> Self
Create a new evaluation session.
Sourcepub fn add_codec(
&mut self,
id: &str,
version: &str,
encode: EncodeFn,
) -> &mut Self
pub fn add_codec( &mut self, id: &str, version: &str, encode: EncodeFn, ) -> &mut Self
Register a codec with an encode callback.
Sourcepub fn add_codec_with_decode(
&mut self,
id: &str,
version: &str,
encode: EncodeFn,
decode: DecodeFn,
) -> &mut Self
pub fn add_codec_with_decode( &mut self, id: &str, version: &str, encode: EncodeFn, decode: DecodeFn, ) -> &mut Self
Register a codec with both encode and decode callbacks.
Sourcepub fn codec_count(&self) -> usize
pub fn codec_count(&self) -> usize
Get the number of registered codecs.
Sourcepub fn evaluate_image(
&self,
name: &str,
image: ImageData,
) -> Result<ImageReport>
pub fn evaluate_image( &self, name: &str, image: ImageData, ) -> Result<ImageReport>
Evaluate a single image across all registered codecs.
§Arguments
name- Image name or identifier.image- The image data to evaluate.
§Returns
An ImageReport containing results for all codec/quality combinations.
Sourcepub fn write_image_report(&self, report: &ImageReport) -> Result<()>
pub fn write_image_report(&self, report: &ImageReport) -> Result<()>
Write an image report to the configured report directory.
Sourcepub fn write_corpus_report(&self, report: &CorpusReport) -> Result<()>
pub fn write_corpus_report(&self, report: &CorpusReport) -> Result<()>
Write a corpus report to the configured report directory.
Auto Trait Implementations§
impl Freeze for EvalSession
impl !RefUnwindSafe for EvalSession
impl Send for EvalSession
impl Sync for EvalSession
impl Unpin for EvalSession
impl !UnwindSafe for EvalSession
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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