ferroui_base/rendering/composition/generated/
composition_container_visual.rs1use crate::rendering::composition::animations::ICompositionAnimation;
6use crate::rendering::composition::expressions::ExpressionVariant;
7use crate::rendering::composition::server::CompositionProperty;
8use crate::rendering::composition::transport::BatchStreamReader;
9use crate::rendering::composition::transport::BatchStreamWriter;
10use std::any::Any;
11use std::any::TypeId;
12use std::time::Duration;
13use super::CompositionVisualHooks;
14use super::CompositionVisualProps;
15use super::ServerCompositionVisualHooks;
16use super::ServerCompositionVisualProps;
17
18pub trait CompositionContainerVisualHooks: CompositionVisualHooks {
21 fn initialize_defaults_extra(&self) {}
22}
23
24pub struct CompositionContainerVisualProps {
26 base: CompositionVisualProps,
27}
28
29impl Default for CompositionContainerVisualProps {
30 fn default() -> Self {
31 Self::new()
32 }
33}
34
35impl CompositionContainerVisualProps {
36 pub fn new() -> Self {
40 Self {
41 base: CompositionVisualProps::new(),
42 }
43 }
44
45 pub fn base(&self) -> &CompositionVisualProps {
47 &self.base
48 }
49
50 pub fn initialize_defaults(&self, host: &dyn CompositionContainerVisualHooks) {
53 self.base.initialize_defaults(host);
54 self.initialize_own_defaults(host);
55 }
56
57 pub fn initialize_own_defaults(&self, host: &dyn CompositionContainerVisualHooks) {
59 CompositionContainerVisualHooks::initialize_defaults_extra(host);
60 }
61
62 pub fn start_animation(
66 &self,
67 host: &dyn CompositionContainerVisualHooks,
68 property_name: &str,
69 animation: &dyn ICompositionAnimation,
70 final_value: Option<ExpressionVariant>,
71 ) -> bool {
72 self.base.start_animation(host, property_name, animation, final_value)
73 }
74
75 pub fn serialize_changes_core(&self, host: &dyn CompositionContainerVisualHooks, writer: &mut BatchStreamWriter<'_>) {
78 self.base.serialize_changes_core(host, writer);
79 }
80}
81
82pub trait ServerCompositionContainerVisualHooks: ServerCompositionVisualHooks {
85}
86
87pub struct ServerCompositionContainerVisualProps {
89 base: ServerCompositionVisualProps,
90}
91
92impl Default for ServerCompositionContainerVisualProps {
93 fn default() -> Self {
94 Self::new()
95 }
96}
97
98impl ServerCompositionContainerVisualProps {
99 pub fn new() -> Self {
102 Self {
103 base: ServerCompositionVisualProps::new(),
104 }
105 }
106
107 pub fn base(&self) -> &ServerCompositionVisualProps {
109 &self.base
110 }
111
112 pub fn find_props(&self, type_id: TypeId) -> Option<&dyn Any> {
115 if type_id == TypeId::of::<Self>() {
116 return Some(self);
117 }
118 self.base.find_props(type_id)
119 }
120
121 pub fn deserialize_changes_core(
124 &self,
125 host: &dyn ServerCompositionContainerVisualHooks,
126 reader: &mut BatchStreamReader<'_>,
127 committed_at: Duration,
128 ) {
129 self.base.deserialize_changes_core(host, reader, committed_at);
130 }
131
132 pub fn get_composition_property(name: &str) -> Option<&'static CompositionProperty> {
135 ServerCompositionVisualProps::get_composition_property(name)
136 }
137}