#![allow(unused)] use dioxus_core::{prelude::Template, VNode}; use dioxus_rsx::{ hot_reload::{diff_rsx, ChangedRsx}, hotreload::HotReloadedTemplate, CallBody, HotReloadingContext, }; use proc_macro2::TokenStream; use quote::{quote, ToTokens}; use syn::{parse::Parse, spanned::Spanned, token::Token, File}; #[derive(Debug)] struct Mock; impl HotReloadingContext for Mock { fn map_attribute( element_name_rust: &str, attribute_name_rust: &str, ) -> Option<(&'static str, Option<&'static str>)> { match element_name_rust { "svg" => match attribute_name_rust { "width" => Some(("width", Some("style"))), "height" => Some(("height", Some("style"))), _ => None, }, _ => None, } } fn map_element(element_name_rust: &str) -> Option<(&'static str, Option<&'static str>)> { match element_name_rust { "svg" => Some(("svg", Some("svg"))), _ => None, } } } fn boilerplate(old: TokenStream, new: TokenStream) -> Option> { let old: CallBody = syn::parse2(old).unwrap(); let new: CallBody = syn::parse2(new).unwrap(); let location = "file:line:col:0"; hotreload_callbody::(&old, &new, location) } fn can_hotreload(old: TokenStream, new: TokenStream) -> Option { let old: CallBody = syn::parse2(old).unwrap(); let new: CallBody = syn::parse2(new).unwrap(); let location = "file:line:col:0"; let results = HotReloadedTemplate::new::(&old, &new, location, Default::default())?; Some(results) } fn hotreload_callbody( old: &CallBody, new: &CallBody, location: &'static str, ) -> Option> { let results = HotReloadedTemplate::new::(old, new, location, Default::default())?; Some(results.templates) } fn callbody_to_template( old: &CallBody, location: &'static str, ) -> Option