settings_container.rs

 1use gpui::AnyElement;
 2use smallvec::SmallVec;
 3
 4use crate::prelude::*;
 5
 6#[derive(IntoElement)]
 7pub struct SettingsContainer {
 8    children: SmallVec<[AnyElement; 2]>,
 9}
10
11impl SettingsContainer {
12    pub fn new() -> Self {
13        Self {
14            children: SmallVec::new(),
15        }
16    }
17}
18
19impl ParentElement for SettingsContainer {
20    fn extend(&mut self, elements: impl IntoIterator<Item = AnyElement>) {
21        self.children.extend(elements)
22    }
23}
24
25impl RenderOnce for SettingsContainer {
26    fn render(self, cx: &mut WindowContext) -> impl IntoElement {
27        v_flex()
28            .elevation_2(cx)
29            .px_2()
30            .gap_1()
31            .children(self.children)
32    }
33}