use std::borrow::Cow; use crate::compare::Token; use crate::wasm::WasmDocument; pub fn wasm_compare_document<'b, 's>( emacs: &'b Token<'s>, wasm: &'b WasmDocument<'s>, ) -> Result, Box> { todo!() } #[derive(Debug)] pub enum WasmDiffEntry<'b, 's> { WasmDiffResult(WasmDiffResult<'b, 's>), WasmDiffLayer(WasmDiffLayer<'b, 's>), } #[derive(Debug)] pub struct WasmDiffResult<'b, 's> { status: WasmDiffStatus, name: Cow<'s, str>, message: Option, children: Vec>, rust_source: &'s str, #[allow(dead_code)] emacs_token: &'b Token<'s>, } #[derive(Debug)] pub(crate) enum WasmDiffStatus { Good, Bad, } #[derive(Debug)] pub struct WasmDiffLayer<'b, 's> { name: Cow<'s, str>, children: Vec>, } impl<'b, 's> WasmDiffEntry<'b, 's> { // fn has_bad_children(&self) -> bool { // match self { // DiffEntry::DiffResult(diff) => &diff.children, // DiffEntry::DiffLayer(diff) => &diff.children, // } // .iter() // .any(|child| child.is_immediately_bad() || child.has_bad_children()) // } // fn is_immediately_bad(&self) -> bool { // match self { // DiffEntry::DiffResult(diff) => matches!(diff.status, DiffStatus::Bad), // DiffEntry::DiffLayer(_) => false, // } // } pub fn is_bad(&self) -> bool { todo!() // self.is_immediately_bad() || self.has_bad_children() } pub fn print(&self, original_document: &str) -> Result<(), Box> { self.print_indented(0, original_document) } fn print_indented( &self, indentation: usize, original_document: &str, ) -> Result<(), Box> { todo!() // match self { // WasmDiffEntry::WasmDiffResult(diff) => { // diff.print_indented(indentation, original_document) // } // WasmDiffEntry::WasmDiffLayer(diff) => { // diff.print_indented(indentation, original_document) // } // } } }