script/dom/
resizeobserversize.rs1use dom_struct::dom_struct;
6
7use crate::dom::bindings::codegen::Bindings::ResizeObserverSizeBinding::ResizeObserverSizeMethods;
8use crate::dom::bindings::reflector::{Reflector, reflect_dom_object_with_proto};
9use crate::dom::bindings::root::DomRoot;
10use crate::dom::window::Window;
11use crate::script_runtime::CanGc;
12
13#[derive(Clone, Copy, JSTraceable, MallocSizeOf, PartialEq)]
15pub(crate) struct ResizeObserverSizeImpl {
16 inline_size: f64,
17 block_size: f64,
18}
19
20impl ResizeObserverSizeImpl {
21 pub(crate) fn new(inline_size: f64, block_size: f64) -> ResizeObserverSizeImpl {
22 ResizeObserverSizeImpl {
23 inline_size,
24 block_size,
25 }
26 }
27
28 pub(crate) fn inline_size(&self) -> f64 {
29 self.inline_size
30 }
31
32 pub(crate) fn block_size(&self) -> f64 {
33 self.block_size
34 }
35}
36
37#[dom_struct]
39pub(crate) struct ResizeObserverSize {
40 reflector_: Reflector,
41 size_impl: ResizeObserverSizeImpl,
42}
43
44impl ResizeObserverSize {
45 fn new_inherited(size_impl: ResizeObserverSizeImpl) -> ResizeObserverSize {
46 ResizeObserverSize {
47 reflector_: Reflector::new(),
48 size_impl,
49 }
50 }
51
52 pub(crate) fn new(
53 window: &Window,
54 size_impl: ResizeObserverSizeImpl,
55 can_gc: CanGc,
56 ) -> DomRoot<ResizeObserverSize> {
57 let observer_size = Box::new(ResizeObserverSize::new_inherited(size_impl));
58 reflect_dom_object_with_proto(observer_size, window, None, can_gc)
59 }
60}
61
62impl ResizeObserverSizeMethods<crate::DomTypeHolder> for ResizeObserverSize {
63 fn InlineSize(&self) -> f64 {
65 self.size_impl.inline_size()
66 }
67
68 fn BlockSize(&self) -> f64 {
70 self.size_impl.block_size()
71 }
72}