How to construct the first parameter of a function without calling it?

AFAIK Dioxus components are type-checked normally, so it doesn't make sense that, when components are rendered thru rsx!, they simply receive dynamic properties.

I thought maybe under the hood Dioxus converts the component's parameters into a dynamic type, but this is probably wrong (because I've seen you don't always wrap your Dioxus component into a #[component] attribute). And if that was done, there'd be no type-checking for attributes, then.

pub enum Node {
    Component {
        component: Rc<dyn Fn(DynParams)>,
        params: DynParams,
    },
}

OK, I guess I made the sense out. One way to do what I want is simply, whenever I find a tag:

<s:Hero/>

I append the Params suffix to the tag. So basically all components shall have an equivalent parameters struct. For the Node enum to be able to hold the component, its function should be transformed such that it takes a Rc<dyn Any>, which is then converted to Rc<HeroParams> in this case.

I still think Dioxus does something a little different, but that should work for me.