ferroui_controls/application_lifetimes/
i_application_lifetime.rs1use super::{
2 IActivityApplicationLifetime, IControlledApplicationLifetime, ISetupApplicationLifetime,
3 ISingleViewApplicationLifetime,
4};
5use std::any::Any;
6
7pub trait IApplicationLifetime {
14 fn as_any(&self) -> &dyn Any;
16
17 fn as_controlled_application_lifetime(&self) -> Option<&dyn IControlledApplicationLifetime> {
19 None
20 }
21
22 fn as_single_view_application_lifetime(&self) -> Option<&dyn ISingleViewApplicationLifetime> {
24 None
25 }
26
27 fn as_single_top_level_application_lifetime(&self) -> Option<&dyn super::ISingleTopLevelApplicationLifetime> {
29 None
30 }
31
32 fn as_activity_application_lifetime(&self) -> Option<&dyn IActivityApplicationLifetime> {
34 None
35 }
36
37 fn as_setup_application_lifetime(&self) -> Option<&dyn ISetupApplicationLifetime> {
40 None
41 }
42
43 fn as_classic_desktop_style_application_lifetime(
45 &self,
46 ) -> Option<&dyn super::IClassicDesktopStyleApplicationLifetime> {
47 None
48 }
49}
50
51impl PartialEq for dyn IApplicationLifetime {
54 #[inline]
55 fn eq(&self, other: &Self) -> bool {
56 std::ptr::addr_eq(self as *const Self, other as *const Self)
57 }
58}