use strum_macros::EnumString;
use super::ViewStyle;
use crate::color::Color;
#[derive(Copy, Clone, Debug, Eq, PartialEq, EnumString)]
pub enum ObjectFit {
#[strum(serialize = "fill")]
Fill,
#[strum(serialize = "none")]
None,
#[strum(serialize = "contain")]
Contain,
#[strum(serialize = "cover")]
Cover,
}
impl Default for ObjectFit {
fn default() -> Self {
ObjectFit::Fill
}
}
#[derive(Copy, Clone, Debug, Default, PartialEq)]
pub struct ImageStyle {
pub object_fit: ObjectFit,
pub tint_color: Option<Color>,
}
#[derive(Copy, Clone, Debug, Default, PartialEq)]
pub struct ImageViewStyle {
pub image: ImageStyle,
pub view: ViewStyle,
}
impl From<ImageStyle> for ImageViewStyle {
fn from(style: ImageStyle) -> Self {
ImageViewStyle {
image: style,
..Default::default()
}
}
}
impl From<ViewStyle> for ImageViewStyle {
fn from(style: ViewStyle) -> Self {
ImageViewStyle {
view: style,
..Default::default()
}
}
}