dxc_types/components/
image.rs

1use dioxus::dioxus_core::AttributeValue;
2use dioxus::prelude::IntoAttributeValue;
3use serde::{Deserialize, Serialize};
4use strum::{Display, EnumString};
5
6pub use crate::common::crossorigin::Crossorigin;
7
8#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize, Display, EnumString)]
9#[strum(serialize_all = "kebab-case")]
10pub enum Fit {
11    #[serde(rename = "contain")]
12    #[strum(serialize = "contain")]
13    Contain,
14
15    #[serde(rename = "cover")]
16    #[strum(serialize = "cover")]
17    Cover,
18
19    #[serde(rename = "fill")]
20    #[strum(serialize = "fill")]
21    Fill,
22
23    #[serde(rename = "none")]
24    #[strum(serialize = "none")]
25    None,
26
27    #[serde(rename = "scale-down")]
28    #[strum(serialize = "scale-down")]
29    ScaleDown,
30}
31
32#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize, Display, EnumString)]
33#[strum(serialize_all = "kebab-case")]
34pub enum Loading {
35    #[serde(rename = "eager")]
36    #[strum(serialize = "eager")]
37    Eager,
38    #[serde(rename = "lazy")]
39    #[strum(serialize = "lazy")]
40    Lazy,
41}
42
43impl IntoAttributeValue for Fit {
44    fn into_value(self) -> AttributeValue {
45        AttributeValue::Text(self.to_string())
46    }
47}
48
49impl IntoAttributeValue for Loading {
50    fn into_value(self) -> AttributeValue {
51        AttributeValue::Text(self.to_string())
52    }
53}