1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use crate::view::View;

/// Represents a type that can be made into a `Box<View>`.
pub trait IntoBoxedView {
    /// Returns a `Box<View>`.
    fn as_boxed_view(self) -> Box<dyn View>;
}

impl<T> IntoBoxedView for T
where
    T: View,
{
    fn as_boxed_view(self) -> Box<dyn View> {
        Box::new(self)
    }
}

impl IntoBoxedView for Box<dyn View> {
    fn as_boxed_view(self) -> Box<dyn View> {
        self
    }
}