rvlib/
types.rs

1use image::{imageops::FilterType, DynamicImage, ImageBuffer, Rgb};
2
3use rvimage_domain::RvResult;
4
5pub type ViewImage = ImageBuffer<Rgb<u8>, Vec<u8>>;
6pub type ResultImage = RvResult<DynamicImage>;
7
8pub type AsyncResultImage = RvResult<Option<ImageInfoPair>>;
9
10pub struct ImageInfoPair {
11    pub im: DynamicImage,
12    pub info: String,
13}
14
15#[derive(Clone, Debug, Default, PartialEq)]
16pub struct ExtraIms {
17    pub prev_ims: Vec<DynamicImage>,
18    pub next_ims: Vec<DynamicImage>,
19}
20impl ExtraIms {
21    pub fn new(mut prev_ims: Vec<DynamicImage>, mut next_ims: Vec<DynamicImage>) -> Self {
22        prev_ims = prev_ims
23            .iter()
24            .map(|im| im.resize(200, 100, FilterType::Lanczos3))
25            .collect();
26        next_ims = next_ims
27            .iter()
28            .map(|im| im.resize(200, 100, FilterType::Lanczos3))
29            .collect();
30        ExtraIms { prev_ims, next_ims }
31    }
32}
33#[derive(Clone, Debug, Default, PartialEq)]
34pub struct ExtraViews {
35    pub prev_ims: Vec<ViewImage>,
36    pub next_ims: Vec<ViewImage>,
37}