Enable runtime rust hot patching. * roll back wry to 0.45 * cleanup rustc * wip * wip: fix client/server * get the subsecond cli thing working again * back to list of builds but with accessors * migrate some methods to workspace, clean up impl a bit * pass mode through build context * use a build context, similar to cargo/rustc * merge BuildUpdate and HandleUpdate into BuilderUpdate * Move more resolution of args into runner * migrate some methods to runner * hoist out fullstack * fix build request resolver * yay request is cleaned up * fixup resolution a bit * spawn off the build! * re-wire android autodetection * re-wire android autodetection * wire back up a few more things * re-wire tooling verification * I think it's mostly in the right condition for regular app * add depinfo parser * yay okay works with regular apps again * full rebuilds are back * rewire file wtcher * wire patch! * yayyyyyy patching works and is really fast * yay android works * clean up stdout piping * yayyy memap on android so we don't need root * create a static wasm jump table * wip: global offset table for wasm * wip... thinking about making the patches relocatable * wip: customized relocation * YESSSSSS RELOCATABLE WASM * clean up impl a bit * lil bit more cleanup * lil bit more * lil bit more cleanup * lil bit more cleanup, support 32 bit platforms * sick, wasm is completely pic * hmmmm not quite working yet * woooo, patches loading from rust+wasm * integrated into the cli 😎 * condense a bit * cleaned up request a bit * bust fingerprints * Make the file diffing logic a bit more sensible * still working through a few issues, server launches but is acting weird * fix merge conflict * more merge issues * remove stuff we don't want anymore * revert name change * wip: server not working anymore :( * split apart "dioxus fullstack" into "dioxus server" and "dioxus web" * fixup a few more compile errors * grrr opening server * simultaneous frontend and backend patching * use rustc wrapper * wip: passing assets to jumptable * migrate project-like examples * patchy patchy server fns! * rollback some random changes * unwind the js files * rollback hash * no need for patch * more cleanups * lil bit more cleanup, remove some old cruft * allow patching when wasm webpage is closed * tiny bit more robust * lil bit of clean up * clean up ws code * bit more clean ups * condense * undo file moves * move back other project * move other project * migrate out harness and janky CLI * fix compile * anonymize some files, heavily document others * lots more documentation, for posterity! * ton more docs * clean up the cli a bit more * more ws cleanup * more cleanup * migrate build id to cli-config * add command file handling * random small cleanups * wip.... * wip.... * fix: use workspace for krate discovery * fix panic logging on serve by placing it *after* the logs * reorder logging to be sensible on success * bring back swc * ws cruft * small patches to relocs in loader * bump krates * hoist main funcs into the ifunc table, fixing wasm * fix tui output for long lines * add more linker logging * wow, incredible, we build fat binaries, holy heckkkkk * fix args for frontend/backend * small cleanups * properly send along build IDs to clients * fix workspace compiles * clean up jump table work a bit * clean up logging a bit * open existing * fixup some commands * open existing browser integration * wire up the new dx serve client/server syntax * fixup `dx run` command * bring back some old functionality * fix serverfn feature sets * remove toast animation and simplify its code a bit * less intrusive toast * dont change build status when patching on web * add proper cache busting to vcomponent * clean up the patch file a bit * more lints/checks cleaned up * go back to TargetArgs but a BuildTargets resolved struct * clean up more nits * use an atomicptr for jumptable * fix interaction with initial web load + suspense * don't run asset system on wasm/bindgen js in dev * reduce blast radius of PR * use profile to determine if we're in release * cleanup prod html template * cleanup profiles * fix feature resolution of fullstack * if fullstack is explicitly false, don't use it * light cleanups * drop carg config2 * pass along linker args properly * make workspace examples compile with dx again * fewer unwraps and better error loggign * bit more error handlign * small cleanup * drive-by cleanups * use queries instead of initialize for aslr stuff * fix hotpatch with higher opt level * fix aslr bug from multiple clients * fix merge conflict * fix typos * clippy * fix miscompile * fix doctest * properly rollback wry to 0.45 * fix markdown path issues, other test issues * fix test in router * fix release mode test * fix some more tests, clean up a few more items * use fnptr instead of typeid * clean up memozation via subsecond in core * use "main" as sentinel * fix imports and re-exports * get off __rust_alloc for aslr offset detection * wip * wip... fixing unoptimized web * hmmmm mmmm * close,ish, still missing the wasmbindgen dynaimc imports * aha! full wasm works now - disable externref when compilng patch modules - manually link wasm instrinsics - displace the __wbindgen_placeholder__ table with the synthesized wbg imports what an awful pain. There might be a few items missing, so will test against the docsite shortly * remove failing test * hmmmm things aren't perfect * from what I can tell, relocatable wasm just doesn't work with wasm-bindgen sad https://github.com/rustwasm/wasm-bindgen/issues/1420 * AI IS LITERALLY THE WORST * preserve wasm snippets across compiles * IT HOTPATCHES THE DOCSITE, WE ARE LIVING IN THE FUTURE * remove the macos cfg-out * fix: need to allocate 1 more page * fix url issue * properly span props * properly fill in extra symbols * light cleanups and good docs * delete cruft, better docs * More cleanups and simplifications * clippy, typos * remove harnesses * wasm-bindgen error logging * clean up deps * remove cruft * proper priv/pub * use ifuncs for all env imports * cruft * use par_iter, better output * implement a cache for the base module * delete custom sections * cache the main native module too * add par iter in a few more places * clippy, map ident * better logging and status bars * wip: some small windows support * wip more windowss * fix weird regression * implement windows jump table * small fixes for windows * better windows support * windows support pt2 * rust lld is not msvc * whole archive the rlibs * ignore windows and sys crates * logging * ohhhhhh, pop out dlls * dedupe * thANK GOD FAT LINKING WORKS ON WINDOWS * hoist caching * implement patch based on cache * fix location for pdb * pass data symbols, correct object * add all symbol for windows * add log * treat none rva as undefined * whoops * handle windows calling convention * dont use relocated arm64 stub windows * not all are text? * WINDOWS FUNCTION PATCHING WORKS but issue with statics? * use our own entry * handle windows imp symbols * add log * jump to the real symbol not the layout * whoops * hotpatching windows works completely holy heck yay * drop linker args crate * disable ssg playwright for now * light cleanups * some cleanups / preps: - bump to serverfn 0.8.2 - fix playwright test - fix clippy * use fix from #4042 * bring in other fix for liveview * hoist some configuration * use __aslr_reference instead of aslr_reference * add better errors to patcherror * fix android * panic if patching fails * clean up tomls * wip: fixing wasm compile for server * fullstack wasm again * fix cfg * fixup feature detection * fix issue with features * fix playwright! * add barebones template test harness * fix compatibility between the two hotreload engines * fix preldue of server * fix check for wasm-opt * small fixes
440 lines
22 KiB
Rust
440 lines
22 KiB
Rust
//! Parse the output of rustc's `.d` dep-info file.
|
|
//!
|
|
//! Used by the hot-reloading engine and other libraries to provide higher quality dependency analysis
|
|
//! for the user's project.
|
|
|
|
use std::path::PathBuf;
|
|
|
|
#[non_exhaustive]
|
|
#[derive(Debug, thiserror::Error)]
|
|
pub enum DepInfoParseError {
|
|
/// The input was malformed - maybe this `.d` format is no longer supported?
|
|
#[error("Malformed input")]
|
|
MalformedInput,
|
|
|
|
/// An env var could not be escaped or parsed - this might be a bug in rustc.
|
|
#[error("Failed to parse env var name")]
|
|
InvalidEnvVarName,
|
|
}
|
|
|
|
#[non_exhaustive]
|
|
#[derive(Default, Debug)]
|
|
pub struct RustcDepInfo {
|
|
/// The list of files that the main target in the dep-info file depends on.
|
|
pub files: Vec<PathBuf>,
|
|
|
|
/// The list of environment variables we found that the rustc compilation
|
|
/// depends on.
|
|
///
|
|
/// The first element of the pair is the name of the env var and the second
|
|
/// item is the value. `Some` means that the env var was set, and `None`
|
|
/// means that the env var wasn't actually set and the compilation depends
|
|
/// on it not being set.
|
|
pub env: Vec<(String, Option<String>)>,
|
|
}
|
|
|
|
impl std::str::FromStr for RustcDepInfo {
|
|
type Err = DepInfoParseError;
|
|
|
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
|
Self::new(s)
|
|
}
|
|
}
|
|
|
|
impl RustcDepInfo {
|
|
/// Parse the `.d` dep-info file generated by rustc.
|
|
pub fn new(contents: &str) -> Result<RustcDepInfo, DepInfoParseError> {
|
|
let mut ret = RustcDepInfo::default();
|
|
let mut found_deps = false;
|
|
|
|
for line in contents.lines() {
|
|
if let Some(rest) = line.strip_prefix("# env-dep:") {
|
|
let mut parts = rest.splitn(2, '=');
|
|
let env_var = match parts.next() {
|
|
Some(s) => s,
|
|
None => continue,
|
|
};
|
|
let env_val = match parts.next() {
|
|
Some(s) => Some(unescape_env(s)?),
|
|
None => None,
|
|
};
|
|
ret.env.push((unescape_env(env_var)?, env_val));
|
|
} else if let Some(pos) = line.find(": ") {
|
|
if found_deps {
|
|
continue;
|
|
}
|
|
found_deps = true;
|
|
let mut deps = line[pos + 2..].split_whitespace();
|
|
|
|
while let Some(s) = deps.next() {
|
|
let mut file = s.to_string();
|
|
while file.ends_with('\\') {
|
|
file.pop();
|
|
file.push(' ');
|
|
file.push_str(deps.next().ok_or(DepInfoParseError::MalformedInput)?);
|
|
}
|
|
ret.files.push(file.into());
|
|
}
|
|
}
|
|
}
|
|
return Ok(ret);
|
|
|
|
// rustc tries to fit env var names and values all on a single line, which
|
|
// means it needs to escape `\r` and `\n`. The escape syntax used is "\n"
|
|
// which means that `\` also needs to be escaped.
|
|
fn unescape_env(s: &str) -> Result<String, DepInfoParseError> {
|
|
let mut ret = String::with_capacity(s.len());
|
|
let mut chars = s.chars();
|
|
while let Some(c) = chars.next() {
|
|
if c != '\\' {
|
|
ret.push(c);
|
|
continue;
|
|
}
|
|
match chars.next() {
|
|
Some('\\') => ret.push('\\'),
|
|
Some('n') => ret.push('\n'),
|
|
Some('r') => ret.push('\r'),
|
|
Some(_) => return Err(DepInfoParseError::InvalidEnvVarName),
|
|
None => return Err(DepInfoParseError::InvalidEnvVarName),
|
|
}
|
|
}
|
|
Ok(ret)
|
|
}
|
|
}
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn parses_from_path() {
|
|
let contents = include_str!("./dx.d");
|
|
let info: RustcDepInfo = contents.parse().unwrap();
|
|
let answer = vec![
|
|
"/dioxus/packages/autofmt/README.md",
|
|
"/dioxus/packages/autofmt/src/buffer.rs",
|
|
"/dioxus/packages/autofmt/src/collect_macros.rs",
|
|
"/dioxus/packages/autofmt/src/indent.rs",
|
|
"/dioxus/packages/autofmt/src/lib.rs",
|
|
"/dioxus/packages/autofmt/src/prettier_please.rs",
|
|
"/dioxus/packages/autofmt/src/writer.rs",
|
|
"/dioxus/packages/check/README.md",
|
|
"/dioxus/packages/check/src/check.rs",
|
|
"/dioxus/packages/check/src/issues.rs",
|
|
"/dioxus/packages/check/src/lib.rs",
|
|
"/dioxus/packages/check/src/metadata.rs",
|
|
"/dioxus/packages/cli/README.md",
|
|
"/dioxus/packages/cli/assets/android/MainActivity.kt.hbs",
|
|
"/dioxus/packages/cli/assets/android/gen/app/build.gradle.kts.hbs",
|
|
"/dioxus/packages/cli/assets/android/gen/app/proguard-rules.pro",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/AndroidManifest.xml.hbs",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/drawable/ic_launcher_background.xml",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/drawable-v24/ic_launcher_foreground.xml",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/mipmap-hdpi/ic_launcher.webp",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/mipmap-mdpi/ic_launcher.webp",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/mipmap-xhdpi/ic_launcher.webp",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/values/colors.xml",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/values/strings.xml.hbs",
|
|
"/dioxus/packages/cli/assets/android/gen/app/src/main/res/values/styles.xml",
|
|
"/dioxus/packages/cli/assets/android/gen/build.gradle.kts",
|
|
"/dioxus/packages/cli/assets/android/gen/gradle/wrapper/gradle-wrapper.jar",
|
|
"/dioxus/packages/cli/assets/android/gen/gradle/wrapper/gradle-wrapper.properties",
|
|
"/dioxus/packages/cli/assets/android/gen/gradle.properties",
|
|
"/dioxus/packages/cli/assets/android/gen/gradlew",
|
|
"/dioxus/packages/cli/assets/android/gen/gradlew.bat",
|
|
"/dioxus/packages/cli/assets/android/gen/settings.gradle",
|
|
"/dioxus/packages/cli/assets/dioxus.toml",
|
|
"/dioxus/packages/cli/assets/ios/ios.plist.hbs",
|
|
"/dioxus/packages/cli/assets/macos/mac.plist.hbs",
|
|
"/dioxus/packages/cli/assets/web/index.html",
|
|
"/dioxus/packages/cli/assets/web/loading.html",
|
|
"/dioxus/packages/cli/assets/web/toast.html",
|
|
"/dioxus/packages/cli/build.rs",
|
|
"/dioxus/packages/cli/src/build/builder.rs",
|
|
"/dioxus/packages/cli/src/build/bundle.rs",
|
|
"/dioxus/packages/cli/src/build/mod.rs",
|
|
"/dioxus/packages/cli/src/build/prerender.rs",
|
|
"/dioxus/packages/cli/src/build/progress.rs",
|
|
"/dioxus/packages/cli/src/build/request.rs",
|
|
"/dioxus/packages/cli/src/build/templates.rs",
|
|
"/dioxus/packages/cli/src/build/verify.rs",
|
|
"/dioxus/packages/cli/src/build/web.rs",
|
|
"/dioxus/packages/cli/src/bundle_utils.rs",
|
|
"/dioxus/packages/cli/src/cli/autoformat.rs",
|
|
"/dioxus/packages/cli/src/cli/build.rs",
|
|
"/dioxus/packages/cli/src/cli/bundle.rs",
|
|
"/dioxus/packages/cli/src/cli/check.rs",
|
|
"/dioxus/packages/cli/src/cli/clean.rs",
|
|
"/dioxus/packages/cli/src/cli/config.rs",
|
|
"/dioxus/packages/cli/src/cli/create.rs",
|
|
"/dioxus/packages/cli/src/cli/init.rs",
|
|
"/dioxus/packages/cli/src/cli/link.rs",
|
|
"/dioxus/packages/cli/src/cli/mod.rs",
|
|
"/dioxus/packages/cli/src/cli/run.rs",
|
|
"/dioxus/packages/cli/src/cli/serve.rs",
|
|
"/dioxus/packages/cli/src/cli/target.rs",
|
|
"/dioxus/packages/cli/src/cli/translate.rs",
|
|
"/dioxus/packages/cli/src/cli/verbosity.rs",
|
|
"/dioxus/packages/cli/src/config/app.rs",
|
|
"/dioxus/packages/cli/src/config/bundle.rs",
|
|
"/dioxus/packages/cli/src/config/desktop.rs",
|
|
"/dioxus/packages/cli/src/config/dioxus_config.rs",
|
|
"/dioxus/packages/cli/src/config/serve.rs",
|
|
"/dioxus/packages/cli/src/config/web.rs",
|
|
"/dioxus/packages/cli/src/config.rs",
|
|
"/dioxus/packages/cli/src/dioxus_crate.rs",
|
|
"/dioxus/packages/cli/src/dx_build_info.rs",
|
|
"/dioxus/packages/cli/src/error.rs",
|
|
"/dioxus/packages/cli/src/fastfs.rs",
|
|
"/dioxus/packages/cli/src/filemap.rs",
|
|
"/dioxus/packages/cli/src/logging.rs",
|
|
"/dioxus/packages/cli/src/main.rs",
|
|
"/dioxus/packages/cli/src/metadata.rs",
|
|
"/dioxus/packages/cli/src/platform.rs",
|
|
"/dioxus/packages/cli/src/rustc.rs",
|
|
"/dioxus/packages/cli/src/serve/ansi_buffer.rs",
|
|
"/dioxus/packages/cli/src/serve/detect.rs",
|
|
"/dioxus/packages/cli/src/serve/handle.rs",
|
|
"/dioxus/packages/cli/src/serve/mod.rs",
|
|
"/dioxus/packages/cli/src/serve/output.rs",
|
|
"/dioxus/packages/cli/src/serve/proxy.rs",
|
|
"/dioxus/packages/cli/src/serve/runner.rs",
|
|
"/dioxus/packages/cli/src/serve/server.rs",
|
|
"/dioxus/packages/cli/src/serve/update.rs",
|
|
"/dioxus/packages/cli/src/serve/watcher.rs",
|
|
"/dioxus/packages/cli/src/settings.rs",
|
|
"/dioxus/packages/cli/src/wasm_bindgen.rs",
|
|
"/dioxus/packages/cli-config/src/lib.rs",
|
|
"/dioxus/packages/cli-opt/src/css.rs",
|
|
"/dioxus/packages/cli-opt/src/file.rs",
|
|
"/dioxus/packages/cli-opt/src/folder.rs",
|
|
"/dioxus/packages/cli-opt/src/image/jpg.rs",
|
|
"/dioxus/packages/cli-opt/src/image/mod.rs",
|
|
"/dioxus/packages/cli-opt/src/image/png.rs",
|
|
"/dioxus/packages/cli-opt/src/js.rs",
|
|
"/dioxus/packages/cli-opt/src/json.rs",
|
|
"/dioxus/packages/cli-opt/src/lib.rs",
|
|
"/dioxus/packages/config-macro/README.md",
|
|
"/dioxus/packages/config-macro/src/lib.rs",
|
|
"/dioxus/packages/const-serialize/README.md",
|
|
"/dioxus/packages/const-serialize/src/const_buffers.rs",
|
|
"/dioxus/packages/const-serialize/src/const_vec.rs",
|
|
"/dioxus/packages/const-serialize/src/lib.rs",
|
|
"/dioxus/packages/const-serialize-macro/src/lib.rs",
|
|
"/dioxus/packages/core/README.md",
|
|
"/dioxus/packages/core/docs/common_spawn_errors.md",
|
|
"/dioxus/packages/core/docs/reactivity.md",
|
|
"/dioxus/packages/core/src/any_props.rs",
|
|
"/dioxus/packages/core/src/arena.rs",
|
|
"/dioxus/packages/core/src/diff/component.rs",
|
|
"/dioxus/packages/core/src/diff/iterator.rs",
|
|
"/dioxus/packages/core/src/diff/mod.rs",
|
|
"/dioxus/packages/core/src/diff/node.rs",
|
|
"/dioxus/packages/core/src/effect.rs",
|
|
"/dioxus/packages/core/src/error_boundary.rs",
|
|
"/dioxus/packages/core/src/events.rs",
|
|
"/dioxus/packages/core/src/fragment.rs",
|
|
"/dioxus/packages/core/src/generational_box.rs",
|
|
"/dioxus/packages/core/src/global_context.rs",
|
|
"/dioxus/packages/core/src/hotreload_utils.rs",
|
|
"/dioxus/packages/core/src/launch.rs",
|
|
"/dioxus/packages/core/src/lib.rs",
|
|
"/dioxus/packages/core/src/mutations.rs",
|
|
"/dioxus/packages/core/src/nodes.rs",
|
|
"/dioxus/packages/core/src/properties.rs",
|
|
"/dioxus/packages/core/src/reactive_context.rs",
|
|
"/dioxus/packages/core/src/render_error.rs",
|
|
"/dioxus/packages/core/src/root_wrapper.rs",
|
|
"/dioxus/packages/core/src/runtime.rs",
|
|
"/dioxus/packages/core/src/scheduler.rs",
|
|
"/dioxus/packages/core/src/scope_arena.rs",
|
|
"/dioxus/packages/core/src/scope_context.rs",
|
|
"/dioxus/packages/core/src/scopes.rs",
|
|
"/dioxus/packages/core/src/suspense/component.rs",
|
|
"/dioxus/packages/core/src/suspense/mod.rs",
|
|
"/dioxus/packages/core/src/tasks.rs",
|
|
"/dioxus/packages/core/src/virtual_dom.rs",
|
|
"/dioxus/packages/core-macro/README.md",
|
|
"/dioxus/packages/core-macro/docs/component.md",
|
|
"/dioxus/packages/core-macro/docs/props.md",
|
|
"/dioxus/packages/core-macro/docs/rsx.md",
|
|
"/dioxus/packages/core-macro/src/component.rs",
|
|
"/dioxus/packages/core-macro/src/lib.rs",
|
|
"/dioxus/packages/core-macro/src/props/mod.rs",
|
|
"/dioxus/packages/core-macro/src/utils.rs",
|
|
"/dioxus/packages/core-types/src/bubbles.rs",
|
|
"/dioxus/packages/core-types/src/bundled.rs",
|
|
"/dioxus/packages/core-types/src/formatter.rs",
|
|
"/dioxus/packages/core-types/src/hr_context.rs",
|
|
"/dioxus/packages/core-types/src/lib.rs",
|
|
"/dioxus/packages/devtools/src/lib.rs",
|
|
"/dioxus/packages/devtools-types/src/lib.rs",
|
|
"/dioxus/packages/dioxus-lib/README.md",
|
|
"/dioxus/packages/dioxus-lib/src/lib.rs",
|
|
"/dioxus/packages/document/build.rs",
|
|
"/dioxus/packages/document/docs/eval.md",
|
|
"/dioxus/packages/document/docs/head.md",
|
|
"/dioxus/packages/document/src/document.rs",
|
|
"/dioxus/packages/document/src/elements/link.rs",
|
|
"/dioxus/packages/document/src/elements/meta.rs",
|
|
"/dioxus/packages/document/src/elements/mod.rs",
|
|
"/dioxus/packages/document/src/elements/script.rs",
|
|
"/dioxus/packages/document/src/elements/style.rs",
|
|
"/dioxus/packages/document/src/elements/stylesheet.rs",
|
|
"/dioxus/packages/document/src/elements/title.rs",
|
|
"/dioxus/packages/document/src/error.rs",
|
|
"/dioxus/packages/document/src/eval.rs",
|
|
"/dioxus/packages/document/src/js/head.js",
|
|
"/dioxus/packages/document/src/lib.rs",
|
|
"/dioxus/packages/document/./src/ts/eval.ts",
|
|
"/dioxus/packages/document/./src/ts/head.ts",
|
|
"/dioxus/packages/dx-wire-format/src/lib.rs",
|
|
"/dioxus/packages/fullstack/README.md",
|
|
"/dioxus/packages/fullstack/src/document/mod.rs",
|
|
"/dioxus/packages/fullstack/src/hooks/mod.rs",
|
|
"/dioxus/packages/fullstack/src/hooks/server_cached.rs",
|
|
"/dioxus/packages/fullstack/src/hooks/server_future.rs",
|
|
"/dioxus/packages/fullstack/src/html_storage/mod.rs",
|
|
"/dioxus/packages/fullstack/src/lib.rs",
|
|
"/dioxus/packages/generational-box/README.md",
|
|
"/dioxus/packages/generational-box/src/entry.rs",
|
|
"/dioxus/packages/generational-box/src/error.rs",
|
|
"/dioxus/packages/generational-box/src/lib.rs",
|
|
"/dioxus/packages/generational-box/src/references.rs",
|
|
"/dioxus/packages/generational-box/src/sync.rs",
|
|
"/dioxus/packages/generational-box/src/unsync.rs",
|
|
"/dioxus/packages/history/src/lib.rs",
|
|
"/dioxus/packages/history/src/memory.rs",
|
|
"/dioxus/packages/hooks/README.md",
|
|
"/dioxus/packages/hooks/docs/derived_state.md",
|
|
"/dioxus/packages/hooks/docs/moving_state_around.md",
|
|
"/dioxus/packages/hooks/docs/rules_of_hooks.md",
|
|
"/dioxus/packages/hooks/docs/side_effects.md",
|
|
"/dioxus/packages/hooks/docs/use_resource.md",
|
|
"/dioxus/packages/hooks/src/lib.rs",
|
|
"/dioxus/packages/hooks/src/use_callback.rs",
|
|
"/dioxus/packages/hooks/src/use_context.rs",
|
|
"/dioxus/packages/hooks/src/use_coroutine.rs",
|
|
"/dioxus/packages/hooks/src/use_effect.rs",
|
|
"/dioxus/packages/hooks/src/use_future.rs",
|
|
"/dioxus/packages/hooks/src/use_hook_did_run.rs",
|
|
"/dioxus/packages/hooks/src/use_memo.rs",
|
|
"/dioxus/packages/hooks/src/use_on_destroy.rs",
|
|
"/dioxus/packages/hooks/src/use_reactive.rs",
|
|
"/dioxus/packages/hooks/src/use_resource.rs",
|
|
"/dioxus/packages/hooks/src/use_root_context.rs",
|
|
"/dioxus/packages/hooks/src/use_set_compare.rs",
|
|
"/dioxus/packages/hooks/src/use_signal.rs",
|
|
"/dioxus/packages/html/README.md",
|
|
"/dioxus/packages/html/docs/common_event_handler_errors.md",
|
|
"/dioxus/packages/html/docs/event_handlers.md",
|
|
"/dioxus/packages/html/src/attribute_groups.rs",
|
|
"/dioxus/packages/html/src/elements.rs",
|
|
"/dioxus/packages/html/src/events/animation.rs",
|
|
"/dioxus/packages/html/src/events/clipboard.rs",
|
|
"/dioxus/packages/html/src/events/composition.rs",
|
|
"/dioxus/packages/html/src/events/drag.rs",
|
|
"/dioxus/packages/html/src/events/focus.rs",
|
|
"/dioxus/packages/html/src/events/form.rs",
|
|
"/dioxus/packages/html/src/events/image.rs",
|
|
"/dioxus/packages/html/src/events/keyboard.rs",
|
|
"/dioxus/packages/html/src/events/media.rs",
|
|
"/dioxus/packages/html/src/events/mod.rs",
|
|
"/dioxus/packages/html/src/events/mounted.rs",
|
|
"/dioxus/packages/html/src/events/mouse.rs",
|
|
"/dioxus/packages/html/src/events/pointer.rs",
|
|
"/dioxus/packages/html/src/events/resize.rs",
|
|
"/dioxus/packages/html/src/events/scroll.rs",
|
|
"/dioxus/packages/html/src/events/selection.rs",
|
|
"/dioxus/packages/html/src/events/toggle.rs",
|
|
"/dioxus/packages/html/src/events/touch.rs",
|
|
"/dioxus/packages/html/src/events/transition.rs",
|
|
"/dioxus/packages/html/src/events/visible.rs",
|
|
"/dioxus/packages/html/src/events/wheel.rs",
|
|
"/dioxus/packages/html/src/file_data.rs",
|
|
"/dioxus/packages/html/src/geometry.rs",
|
|
"/dioxus/packages/html/src/input_data.rs",
|
|
"/dioxus/packages/html/src/lib.rs",
|
|
"/dioxus/packages/html/src/point_interaction.rs",
|
|
"/dioxus/packages/html/src/render_template.rs",
|
|
"/dioxus/packages/html-internal-macro/src/lib.rs",
|
|
"/dioxus/packages/lazy-js-bundle/src/lib.rs",
|
|
"/dioxus/packages/manganis/manganis/README.md",
|
|
"/dioxus/packages/manganis/manganis/src/hash.rs",
|
|
"/dioxus/packages/manganis/manganis/src/lib.rs",
|
|
"/dioxus/packages/manganis/manganis/src/macro_helpers.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/asset.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/css.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/folder.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/hash.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/images.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/js.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/lib.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/linker.rs",
|
|
"/dioxus/packages/manganis/manganis-core/src/options.rs",
|
|
"/dioxus/packages/manganis/manganis-macro/README.md",
|
|
"/dioxus/packages/manganis/manganis-macro/src/asset.rs",
|
|
"/dioxus/packages/manganis/manganis-macro/src/lib.rs",
|
|
"/dioxus/packages/manganis/manganis-macro/src/linker.rs",
|
|
"/dioxus/packages/rsx/src/assign_dyn_ids.rs",
|
|
"/dioxus/packages/rsx/src/attribute.rs",
|
|
"/dioxus/packages/rsx/src/component.rs",
|
|
"/dioxus/packages/rsx/src/diagnostics.rs",
|
|
"/dioxus/packages/rsx/src/element.rs",
|
|
"/dioxus/packages/rsx/src/expr_node.rs",
|
|
"/dioxus/packages/rsx/src/forloop.rs",
|
|
"/dioxus/packages/rsx/src/ifchain.rs",
|
|
"/dioxus/packages/rsx/src/ifmt.rs",
|
|
"/dioxus/packages/rsx/src/lib.rs",
|
|
"/dioxus/packages/rsx/src/literal.rs",
|
|
"/dioxus/packages/rsx/src/location.rs",
|
|
"/dioxus/packages/rsx/src/node.rs",
|
|
"/dioxus/packages/rsx/src/partial_closure.rs",
|
|
"/dioxus/packages/rsx/src/raw_expr.rs",
|
|
"/dioxus/packages/rsx/src/rsx_block.rs",
|
|
"/dioxus/packages/rsx/src/rsx_call.rs",
|
|
"/dioxus/packages/rsx/src/template_body.rs",
|
|
"/dioxus/packages/rsx/src/text_node.rs",
|
|
"/dioxus/packages/rsx/src/util.rs",
|
|
"/dioxus/packages/rsx-hotreload/src/collect.rs",
|
|
"/dioxus/packages/rsx-hotreload/src/diff.rs",
|
|
"/dioxus/packages/rsx-hotreload/src/extensions.rs",
|
|
"/dioxus/packages/rsx-hotreload/src/last_build_state.rs",
|
|
"/dioxus/packages/rsx-hotreload/src/lib.rs",
|
|
"/dioxus/packages/rsx-rosetta/README.md",
|
|
"/dioxus/packages/rsx-rosetta/src/lib.rs",
|
|
"/dioxus/packages/server-macro/src/lib.rs",
|
|
"/dioxus/packages/signals/README.md",
|
|
"/dioxus/packages/signals/docs/hoist/error.rs",
|
|
"/dioxus/packages/signals/docs/hoist/fixed_list.rs",
|
|
"/dioxus/packages/signals/docs/memo.md",
|
|
"/dioxus/packages/signals/docs/signals.md",
|
|
"/dioxus/packages/signals/src/copy_value.rs",
|
|
"/dioxus/packages/signals/src/global/memo.rs",
|
|
"/dioxus/packages/signals/src/global/mod.rs",
|
|
"/dioxus/packages/signals/src/global/signal.rs",
|
|
"/dioxus/packages/signals/src/impls.rs",
|
|
"/dioxus/packages/signals/src/lib.rs",
|
|
"/dioxus/packages/signals/src/map.rs",
|
|
"/dioxus/packages/signals/src/memo.rs",
|
|
"/dioxus/packages/signals/src/props.rs",
|
|
"/dioxus/packages/signals/src/read.rs",
|
|
"/dioxus/packages/signals/src/read_only_signal.rs",
|
|
"/dioxus/packages/signals/src/set_compare.rs",
|
|
"/dioxus/packages/signals/src/signal.rs",
|
|
"/dioxus/packages/signals/src/warnings.rs",
|
|
"/dioxus/packages/signals/src/write.rs",
|
|
"/dioxus/target/debug/build/dioxus-cli-90993e55e02b7cee/out/built.rs",
|
|
];
|
|
assert_eq!(
|
|
answer.iter().map(PathBuf::from).collect::<Vec<_>>(),
|
|
info.files
|
|
);
|
|
}
|
|
}
|