Skip to main content

dxc_types/components/
image.rs

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