collab-common 0.0.7

Code shared by collab's client and server
Documentation
use serde::{Deserialize, Serialize};

use crate::File;

/// TODO: docs
#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Directory {
    children: Vec<File>,
}

impl Directory {
    /// TODO: docs
    #[inline(always)]
    pub fn files(&self) -> impl ExactSizeIterator<Item = &File> + '_ {
        self.children.iter()
    }

    #[inline(always)]
    pub(crate) fn new() -> Self {
        Self::default()
    }

    #[inline(always)]
    pub(crate) fn push(&mut self, file: File) {
        self.children.push(file);
    }
}