webbind/opt/rustwide/workdir/src/
HTMLProgressElement.rs

1use super::*;
2
3/// The HTMLProgressElement class.
4/// [`HTMLProgressElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement)
5#[derive(Clone, Debug, PartialEq, PartialOrd)]
6#[repr(transparent)]
7pub struct HTMLProgressElement {
8    inner: HTMLElement,
9}
10
11impl FromVal for HTMLProgressElement {
12    fn from_val(v: &Any) -> Self {
13        HTMLProgressElement {
14            inner: HTMLElement::from_val(v),
15        }
16    }
17    fn take_ownership(v: AnyHandle) -> Self {
18        Self::from_val(&Any::take_ownership(v))
19    }
20    fn as_handle(&self) -> AnyHandle {
21        self.inner.as_handle()
22    }
23}
24
25impl core::ops::Deref for HTMLProgressElement {
26    type Target = HTMLElement;
27    fn deref(&self) -> &Self::Target {
28        &self.inner
29    }
30}
31
32impl core::ops::DerefMut for HTMLProgressElement {
33    fn deref_mut(&mut self) -> &mut Self::Target {
34        &mut self.inner
35    }
36}
37
38impl AsRef<Any> for HTMLProgressElement {
39    fn as_ref(&self) -> &Any {
40        &self.inner
41    }
42}
43
44impl AsMut<Any> for HTMLProgressElement {
45    fn as_mut(&mut self) -> &mut Any {
46        &mut self.inner
47    }
48}
49
50impl From<HTMLProgressElement> for Any {
51    fn from(s: HTMLProgressElement) -> Any {
52        let handle = s.inner.as_handle();
53        core::mem::forget(s);
54        Any::take_ownership(handle)
55    }
56}
57
58impl From<&HTMLProgressElement> for Any {
59    fn from(s: &HTMLProgressElement) -> Any {
60        s.inner.clone().into()
61    }
62}
63
64jsbind::utils::impl_dyn_cast!(HTMLProgressElement);
65
66impl HTMLProgressElement {
67    /// Getter of the `value` attribute.
68    /// [`HTMLProgressElement.value`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement/value)
69    pub fn value(&self) -> f64 {
70        self.inner.get("value").as_::<f64>()
71    }
72
73    /// Setter of the `value` attribute.
74    /// [`HTMLProgressElement.value`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement/value)
75    pub fn set_value(&mut self, value: f64) {
76        self.inner.set("value", value);
77    }
78}
79impl HTMLProgressElement {
80    /// Getter of the `max` attribute.
81    /// [`HTMLProgressElement.max`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement/max)
82    pub fn max(&self) -> f64 {
83        self.inner.get("max").as_::<f64>()
84    }
85
86    /// Setter of the `max` attribute.
87    /// [`HTMLProgressElement.max`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement/max)
88    pub fn set_max(&mut self, value: f64) {
89        self.inner.set("max", value);
90    }
91}
92impl HTMLProgressElement {
93    /// Getter of the `position` attribute.
94    /// [`HTMLProgressElement.position`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement/position)
95    pub fn position(&self) -> f64 {
96        self.inner.get("position").as_::<f64>()
97    }
98}
99impl HTMLProgressElement {
100    /// Getter of the `labels` attribute.
101    /// [`HTMLProgressElement.labels`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLProgressElement/labels)
102    pub fn labels(&self) -> NodeList {
103        self.inner.get("labels").as_::<NodeList>()
104    }
105}
106
107impl HTMLProgressElement {
108    /// The `new HTMLProgressElement(..)` constructor, creating a new HTMLProgressElement instance
109    pub fn new() -> HTMLProgressElement {
110        Self {
111            inner: Any::global("HTMLProgressElement")
112                .new(&[])
113                .as_::<HTMLElement>(),
114        }
115    }
116}