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