pub fn new_child<T2>(
        &self,
    ) -> (
        watch::Sender<Option<T2>>,
        CookieRegister,
        CookiedOptionalWatch<T2, Self>,
    ) {
        let (tx, rx) = watch::channel(None);
        let (cookie_tx, cookie_rx) = watch::channel(0);

        (
            tx,
            CookieRegister(cookie_tx, self.cookie_writer.root().to_owned()),
            CookiedOptionalWatch {
                value: rx,
                cookie_index: cookie_rx,
                cookie_writer: self.cookie_writer.clone(),
                parent: self.clone(),
            },
        )
    }
Create a new child cookie watcher that inherits the same fs source as
this one, but also has its own cookie source. This allows you to
synchronize two independent cookie streams.
crates/turborepo-filewatch/src/cookies.rs