codify "platform" into resolution logic, server-fn/fullstack overhaul (#4596)

overhaul dioxus fullstack using a new implementation of server_fn

This PR is a complete rewrite of dioxus fullstack designed to improve compatibility with axum and to fix a number of compilation errors based on feature flag unification plumbing through macros.
This commit is contained in:
Jonathan Kelley authored and GitHub committed 2025-10-03 18:26:19 -07:00
1 parent 8421c3aef0
commit f2b1c6d97f
424 files changed
+17284 -6624

No files matched your search

+18 -6
View File
@@ -1324,12 +1324,24 @@ impl<'a> ModuleWithRelocations<'a> {
fn get_symbol_dep_node(&self, index: usize) -> Result<Option<Node>> {
let res = match self.symbols[index] {
SymbolInfo::Data { .. } => Some(Node::DataSymbol(index)),
SymbolInfo::Func { name, .. } => Some(Node::Function(
*self
.names_to_funcs
.get(name.expect("local func symbol without name?"))
.unwrap(),
)),
SymbolInfo::Func { name, .. } => Some(Node::Function({
let name = name.context(
"Function symbol has no name - did you forget to enable debug symbols",
)?;
let func_id = self.names_to_funcs.get(name);
// wbindgen will synthesize some functions that don't exist in the original module (eg describe functions)
// Previously this was a hard error, but now we just ignore it. It used to mean that the user
let Some(res) = func_id else {
if !name.contains("__wbindgen_") {
tracing::error!("Could not find function symbol {name:?} in module - was this built with LTO, --emit-relocs, and debug symbols? Ignoring.");
}
return Ok(None);
};
*res
})),
_ => None,
};