pub fn register_page_state_value<R>(
        &self,
        url: &PathMaybeWithLocale,
        state: TemplateStateWithType<R::Unrx>,
        is_widget: bool,
    ) -> Result<<R::Unrx as MakeRx>::Rx, ClientError>
    where
        R: Clone + AnyFreeze + MakeUnrx,
        // We need this so that the compiler understands that the reactive version of the
        // unreactive version of `R` has the same properties as `R` itself
        <<R as MakeUnrx>::Unrx as MakeRx>::Rx: Clone + AnyFreeze + MakeUnrx,
    {
        // Deserialize it (we know nothing about the calling situation, so we assume it
        // could be invalid, hence the fallible return type)
        let unrx = state
            .to_concrete()
            .map_err(|err| ClientError::StateInvalid { source: err })?;
        let rx = unrx.make_rx();
        // Potential silent failure (see above)
        let _ = self.page_state_store.add_state(url, rx.clone(), is_widget);

        Ok(rx)
    }
Registers a deserialized and unreactive [`TemplateState`] to the page
state store, returning a fully reactive version.

**Warning:** if the page has already been registered in the page state
store as not being able to receive state, this will silently fail
(i.e. the state will be returned, but it won't be registered). If this
occurs, something has gone horribly wrong, and panics will almost
certainly follow. (Basically, this should *never* happen. If you're
not using the macros, you may need to be careful of this.)
packages/perseus/src/template/render_ctx.rs