Implement the traits for all ast node types.
This commit is contained in:
parent
ecd523fa8f
commit
418c5c1ce8
@ -306,61 +306,61 @@ fn compare_ast_node<'b, 's>(
|
||||
rust: AstNode<'b, 's>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let compare_result: Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> = match rust {
|
||||
AstNode::Document(_) => todo!(),
|
||||
AstNode::Heading(_) => todo!(),
|
||||
AstNode::Section(_) => todo!(),
|
||||
AstNode::Paragraph(_) => todo!(),
|
||||
AstNode::PlainList(_) => todo!(),
|
||||
AstNode::PlainListItem(_) => todo!(),
|
||||
AstNode::GreaterBlock(_) => todo!(),
|
||||
AstNode::DynamicBlock(_) => todo!(),
|
||||
AstNode::FootnoteDefinition(_) => todo!(),
|
||||
AstNode::Comment(_) => todo!(),
|
||||
AstNode::Drawer(_) => todo!(),
|
||||
AstNode::PropertyDrawer(_) => todo!(),
|
||||
AstNode::NodeProperty(_) => todo!(),
|
||||
AstNode::Table(_) => todo!(),
|
||||
AstNode::TableRow(_) => todo!(),
|
||||
AstNode::VerseBlock(_) => todo!(),
|
||||
AstNode::CommentBlock(_) => todo!(),
|
||||
AstNode::ExampleBlock(_) => todo!(),
|
||||
AstNode::ExportBlock(_) => todo!(),
|
||||
AstNode::SrcBlock(_) => todo!(),
|
||||
AstNode::Clock(_) => todo!(),
|
||||
AstNode::DiarySexp(_) => todo!(),
|
||||
AstNode::Planning(_) => todo!(),
|
||||
AstNode::FixedWidthArea(_) => todo!(),
|
||||
AstNode::HorizontalRule(_) => todo!(),
|
||||
AstNode::Keyword(_) => todo!(),
|
||||
AstNode::BabelCall(_) => todo!(),
|
||||
AstNode::LatexEnvironment(_) => todo!(),
|
||||
AstNode::Bold(_) => todo!(),
|
||||
AstNode::Italic(_) => todo!(),
|
||||
AstNode::Underline(_) => todo!(),
|
||||
AstNode::StrikeThrough(_) => todo!(),
|
||||
AstNode::Code(_) => todo!(),
|
||||
AstNode::Verbatim(_) => todo!(),
|
||||
AstNode::PlainText(_) => todo!(),
|
||||
AstNode::RegularLink(_) => todo!(),
|
||||
AstNode::RadioLink(_) => todo!(),
|
||||
AstNode::RadioTarget(_) => todo!(),
|
||||
AstNode::PlainLink(_) => todo!(),
|
||||
AstNode::AngleLink(_) => todo!(),
|
||||
AstNode::OrgMacro(_) => todo!(),
|
||||
AstNode::Entity(_) => todo!(),
|
||||
AstNode::LatexFragment(_) => todo!(),
|
||||
AstNode::ExportSnippet(_) => todo!(),
|
||||
AstNode::FootnoteReference(_) => todo!(),
|
||||
AstNode::Citation(_) => todo!(),
|
||||
AstNode::CitationReference(_) => todo!(),
|
||||
AstNode::InlineBabelCall(_) => todo!(),
|
||||
AstNode::InlineSourceBlock(_) => todo!(),
|
||||
AstNode::LineBreak(_) => todo!(),
|
||||
AstNode::Target(_) => todo!(),
|
||||
AstNode::StatisticsCookie(_) => todo!(),
|
||||
AstNode::Subscript(_) => todo!(),
|
||||
AstNode::Superscript(_) => todo!(),
|
||||
AstNode::TableCell(_) => todo!(),
|
||||
AstNode::Document(node) => compare_document(emacs, node),
|
||||
AstNode::Heading(node) => compare_heading(source, emacs, node),
|
||||
AstNode::Section(node) => compare_section(source, emacs, node),
|
||||
AstNode::Paragraph(node) => compare_paragraph(source, emacs, node),
|
||||
AstNode::PlainList(node) => compare_plain_list(source, emacs, node),
|
||||
AstNode::PlainListItem(node) => compare_plain_list_item(source, emacs, node),
|
||||
AstNode::GreaterBlock(node) => compare_greater_block(source, emacs, node),
|
||||
AstNode::DynamicBlock(node) => compare_dynamic_block(source, emacs, node),
|
||||
AstNode::FootnoteDefinition(node) => compare_footnote_definition(source, emacs, node),
|
||||
AstNode::Comment(node) => compare_comment(source, emacs, node),
|
||||
AstNode::Drawer(node) => compare_drawer(source, emacs, node),
|
||||
AstNode::PropertyDrawer(node) => compare_property_drawer(source, emacs, node),
|
||||
AstNode::NodeProperty(node) => compare_node_property(source, emacs, node),
|
||||
AstNode::Table(node) => compare_table(source, emacs, node),
|
||||
AstNode::TableRow(node) => compare_table_row(source, emacs, node),
|
||||
AstNode::VerseBlock(node) => compare_verse_block(source, emacs, node),
|
||||
AstNode::CommentBlock(node) => compare_comment_block(source, emacs, node),
|
||||
AstNode::ExampleBlock(node) => compare_example_block(source, emacs, node),
|
||||
AstNode::ExportBlock(node) => compare_export_block(source, emacs, node),
|
||||
AstNode::SrcBlock(node) => compare_src_block(source, emacs, node),
|
||||
AstNode::Clock(node) => compare_clock(source, emacs, node),
|
||||
AstNode::DiarySexp(node) => compare_diary_sexp(source, emacs, node),
|
||||
AstNode::Planning(node) => compare_planning(source, emacs, node),
|
||||
AstNode::FixedWidthArea(node) => compare_fixed_width_area(source, emacs, node),
|
||||
AstNode::HorizontalRule(node) => compare_horizontal_rule(source, emacs, node),
|
||||
AstNode::Keyword(node) => compare_keyword(source, emacs, node),
|
||||
AstNode::BabelCall(node) => compare_babel_call(source, emacs, node),
|
||||
AstNode::LatexEnvironment(node) => compare_latex_environment(source, emacs, node),
|
||||
AstNode::Bold(node) => compare_bold(source, emacs, node),
|
||||
AstNode::Italic(node) => compare_italic(source, emacs, node),
|
||||
AstNode::Underline(node) => compare_underline(source, emacs, node),
|
||||
AstNode::StrikeThrough(node) => compare_strike_through(source, emacs, node),
|
||||
AstNode::Code(node) => compare_code(source, emacs, node),
|
||||
AstNode::Verbatim(node) => compare_verbatim(source, emacs, node),
|
||||
AstNode::PlainText(node) => compare_plain_text(source, emacs, node),
|
||||
AstNode::RegularLink(node) => compare_regular_link(source, emacs, node),
|
||||
AstNode::RadioLink(node) => compare_radio_link(source, emacs, node),
|
||||
AstNode::RadioTarget(node) => compare_radio_target(source, emacs, node),
|
||||
AstNode::PlainLink(node) => compare_plain_link(source, emacs, node),
|
||||
AstNode::AngleLink(node) => compare_angle_link(source, emacs, node),
|
||||
AstNode::OrgMacro(node) => compare_org_macro(source, emacs, node),
|
||||
AstNode::Entity(node) => compare_entity(source, emacs, node),
|
||||
AstNode::LatexFragment(node) => compare_latex_fragment(source, emacs, node),
|
||||
AstNode::ExportSnippet(node) => compare_export_snippet(source, emacs, node),
|
||||
AstNode::FootnoteReference(node) => compare_footnote_reference(source, emacs, node),
|
||||
AstNode::Citation(node) => compare_citation(source, emacs, node),
|
||||
AstNode::CitationReference(node) => compare_citation_reference(source, emacs, node),
|
||||
AstNode::InlineBabelCall(node) => compare_inline_babel_call(source, emacs, node),
|
||||
AstNode::InlineSourceBlock(node) => compare_inline_source_block(source, emacs, node),
|
||||
AstNode::LineBreak(node) => compare_line_break(source, emacs, node),
|
||||
AstNode::Target(node) => compare_target(source, emacs, node),
|
||||
AstNode::StatisticsCookie(node) => compare_statistics_cookie(source, emacs, node),
|
||||
AstNode::Subscript(node) => compare_subscript(source, emacs, node),
|
||||
AstNode::Superscript(node) => compare_superscript(source, emacs, node),
|
||||
AstNode::TableCell(node) => compare_table_cell(source, emacs, node),
|
||||
AstNode::Timestamp(node) => compare_timestamp(source, emacs, node),
|
||||
};
|
||||
|
||||
@ -381,12 +381,16 @@ fn compare_ast_node<'b, 's>(
|
||||
}
|
||||
};
|
||||
|
||||
match compare_standard_properties(source, emacs, &rust) {
|
||||
Err(err) => {
|
||||
compare_result.status = DiffStatus::Bad;
|
||||
compare_result.message = Some(err.to_string())
|
||||
// PlainText is a special case because upstream Org-Mode uses relative values for the bounds in plaintext rather than absolute so the below checks do not account for that.
|
||||
if let AstNode::PlainText(_) = rust {
|
||||
} else {
|
||||
match compare_standard_properties(source, emacs, &rust) {
|
||||
Err(err) => {
|
||||
compare_result.status = DiffStatus::Bad;
|
||||
compare_result.message = Some(err.to_string())
|
||||
}
|
||||
Ok(_) => {}
|
||||
}
|
||||
Ok(_) => {}
|
||||
}
|
||||
|
||||
Ok(compare_result.into())
|
||||
@ -394,8 +398,8 @@ fn compare_ast_node<'b, 's>(
|
||||
|
||||
fn compare_element<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Element<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Element<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let compare_result = match rust {
|
||||
Element::Paragraph(obj) => compare_paragraph(source, emacs, obj),
|
||||
@ -452,8 +456,8 @@ fn compare_element<'b, 's>(
|
||||
|
||||
fn compare_object<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Object<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Object<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let compare_result = match rust {
|
||||
Object::Bold(obj) => compare_bold(source, emacs, obj),
|
||||
@ -517,8 +521,8 @@ fn compare_object<'b, 's>(
|
||||
}
|
||||
|
||||
pub fn compare_document<'b, 's>(
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Document<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Document<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -627,8 +631,8 @@ pub fn compare_document<'b, 's>(
|
||||
|
||||
fn compare_section<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Section<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Section<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut this_status = DiffStatus::Good;
|
||||
@ -660,8 +664,8 @@ fn compare_section<'b, 's>(
|
||||
|
||||
fn compare_heading<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Heading<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Heading<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -861,8 +865,8 @@ fn compare_heading<'b, 's>(
|
||||
.into())
|
||||
}
|
||||
|
||||
fn get_tags_from_heading<'s>(
|
||||
emacs: &'s Token<'s>,
|
||||
fn get_tags_from_heading<'b, 's>(
|
||||
emacs: &'b Token<'s>,
|
||||
) -> Result<HashSet<String>, Box<dyn std::error::Error>> {
|
||||
let tags = match get_property(emacs, ":tags")? {
|
||||
Some(prop) => prop,
|
||||
@ -889,8 +893,8 @@ fn get_tags_from_heading<'s>(
|
||||
|
||||
fn compare_paragraph<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Paragraph<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Paragraph<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -914,8 +918,8 @@ fn compare_paragraph<'b, 's>(
|
||||
|
||||
fn compare_plain_list<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s PlainList<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b PlainList<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -956,8 +960,8 @@ fn compare_plain_list<'b, 's>(
|
||||
|
||||
fn compare_plain_list_item<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s PlainListItem<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b PlainListItem<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -1081,8 +1085,8 @@ fn compare_plain_list_item<'b, 's>(
|
||||
|
||||
fn compare_greater_block<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s GreaterBlock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b GreaterBlock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -1108,8 +1112,8 @@ fn compare_greater_block<'b, 's>(
|
||||
|
||||
fn compare_dynamic_block<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s DynamicBlock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b DynamicBlock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -1134,8 +1138,8 @@ fn compare_dynamic_block<'b, 's>(
|
||||
|
||||
fn compare_footnote_definition<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s FootnoteDefinition<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b FootnoteDefinition<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -1160,8 +1164,8 @@ fn compare_footnote_definition<'b, 's>(
|
||||
|
||||
fn compare_comment<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Comment<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Comment<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let child_status = Vec::new();
|
||||
let this_status = DiffStatus::Good;
|
||||
@ -1181,8 +1185,8 @@ fn compare_comment<'b, 's>(
|
||||
|
||||
fn compare_drawer<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Drawer<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Drawer<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -1207,8 +1211,8 @@ fn compare_drawer<'b, 's>(
|
||||
|
||||
fn compare_property_drawer<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s PropertyDrawer<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b PropertyDrawer<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -1232,8 +1236,8 @@ fn compare_property_drawer<'b, 's>(
|
||||
|
||||
fn compare_node_property<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s NodeProperty<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b NodeProperty<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let child_status = Vec::new();
|
||||
let mut this_status = DiffStatus::Good;
|
||||
@ -1262,8 +1266,8 @@ fn compare_node_property<'b, 's>(
|
||||
|
||||
fn compare_table<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Table<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Table<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -1327,8 +1331,8 @@ fn compare_table<'b, 's>(
|
||||
|
||||
fn compare_table_row<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s TableRow<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b TableRow<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let mut child_status = Vec::new();
|
||||
@ -1364,8 +1368,8 @@ fn compare_table_row<'b, 's>(
|
||||
|
||||
fn compare_table_cell<'b, 's>(
|
||||
source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s TableCell<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b TableCell<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let child_status = Vec::new();
|
||||
@ -1395,8 +1399,8 @@ fn compare_table_cell<'b, 's>(
|
||||
|
||||
fn compare_verse_block<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s VerseBlock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b VerseBlock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let child_status = Vec::new();
|
||||
@ -1418,8 +1422,8 @@ fn compare_verse_block<'b, 's>(
|
||||
|
||||
fn compare_comment_block<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s CommentBlock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b CommentBlock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1439,8 +1443,8 @@ fn compare_comment_block<'b, 's>(
|
||||
|
||||
fn compare_example_block<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s ExampleBlock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b ExampleBlock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1460,8 +1464,8 @@ fn compare_example_block<'b, 's>(
|
||||
|
||||
fn compare_export_block<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s ExportBlock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b ExportBlock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1481,8 +1485,8 @@ fn compare_export_block<'b, 's>(
|
||||
|
||||
fn compare_src_block<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s SrcBlock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b SrcBlock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1502,8 +1506,8 @@ fn compare_src_block<'b, 's>(
|
||||
|
||||
fn compare_clock<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Clock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Clock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1523,8 +1527,8 @@ fn compare_clock<'b, 's>(
|
||||
|
||||
fn compare_diary_sexp<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s DiarySexp<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b DiarySexp<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1544,8 +1548,8 @@ fn compare_diary_sexp<'b, 's>(
|
||||
|
||||
fn compare_planning<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Planning<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Planning<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1565,8 +1569,8 @@ fn compare_planning<'b, 's>(
|
||||
|
||||
fn compare_fixed_width_area<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s FixedWidthArea<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b FixedWidthArea<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let child_status = Vec::new();
|
||||
let this_status = DiffStatus::Good;
|
||||
@ -1587,8 +1591,8 @@ fn compare_fixed_width_area<'b, 's>(
|
||||
|
||||
fn compare_horizontal_rule<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s HorizontalRule<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b HorizontalRule<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let child_status = Vec::new();
|
||||
let this_status = DiffStatus::Good;
|
||||
@ -1607,8 +1611,8 @@ fn compare_horizontal_rule<'b, 's>(
|
||||
|
||||
fn compare_keyword<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Keyword<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Keyword<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let child_status = Vec::new();
|
||||
let mut this_status = DiffStatus::Good;
|
||||
@ -1652,8 +1656,8 @@ fn compare_keyword<'b, 's>(
|
||||
|
||||
fn compare_babel_call<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s BabelCall<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b BabelCall<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let child_status = Vec::new();
|
||||
let mut this_status = DiffStatus::Good;
|
||||
@ -1686,8 +1690,8 @@ fn compare_babel_call<'b, 's>(
|
||||
|
||||
fn compare_latex_environment<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s LatexEnvironment<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b LatexEnvironment<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let child_status = Vec::new();
|
||||
let this_status = DiffStatus::Good;
|
||||
@ -1708,8 +1712,8 @@ fn compare_latex_environment<'b, 's>(
|
||||
|
||||
fn compare_plain_text<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s PlainText<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b PlainText<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let mut this_status = DiffStatus::Good;
|
||||
let mut message = None;
|
||||
@ -1758,8 +1762,8 @@ fn compare_plain_text<'b, 's>(
|
||||
|
||||
fn compare_bold<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Bold<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Bold<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1777,8 +1781,8 @@ fn compare_bold<'b, 's>(
|
||||
|
||||
fn compare_italic<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Italic<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Italic<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1796,8 +1800,8 @@ fn compare_italic<'b, 's>(
|
||||
|
||||
fn compare_underline<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Underline<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Underline<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1815,8 +1819,8 @@ fn compare_underline<'b, 's>(
|
||||
|
||||
fn compare_verbatim<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Verbatim<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Verbatim<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1836,8 +1840,8 @@ fn compare_verbatim<'b, 's>(
|
||||
|
||||
fn compare_code<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Code<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Code<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1857,8 +1861,8 @@ fn compare_code<'b, 's>(
|
||||
|
||||
fn compare_strike_through<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s StrikeThrough<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b StrikeThrough<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1876,8 +1880,8 @@ fn compare_strike_through<'b, 's>(
|
||||
|
||||
fn compare_regular_link<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s RegularLink<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b RegularLink<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1897,8 +1901,8 @@ fn compare_regular_link<'b, 's>(
|
||||
|
||||
fn compare_radio_link<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s RadioLink<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b RadioLink<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1918,8 +1922,8 @@ fn compare_radio_link<'b, 's>(
|
||||
|
||||
fn compare_radio_target<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s RadioTarget<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b RadioTarget<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1939,8 +1943,8 @@ fn compare_radio_target<'b, 's>(
|
||||
|
||||
fn compare_plain_link<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s PlainLink<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b PlainLink<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1960,8 +1964,8 @@ fn compare_plain_link<'b, 's>(
|
||||
|
||||
fn compare_angle_link<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s AngleLink<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b AngleLink<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -1981,8 +1985,8 @@ fn compare_angle_link<'b, 's>(
|
||||
|
||||
fn compare_org_macro<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s OrgMacro<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b OrgMacro<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2002,8 +2006,8 @@ fn compare_org_macro<'b, 's>(
|
||||
|
||||
fn compare_entity<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Entity<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Entity<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2023,8 +2027,8 @@ fn compare_entity<'b, 's>(
|
||||
|
||||
fn compare_latex_fragment<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s LatexFragment<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b LatexFragment<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2044,8 +2048,8 @@ fn compare_latex_fragment<'b, 's>(
|
||||
|
||||
fn compare_export_snippet<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s ExportSnippet<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b ExportSnippet<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2065,8 +2069,8 @@ fn compare_export_snippet<'b, 's>(
|
||||
|
||||
fn compare_footnote_reference<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s FootnoteReference<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b FootnoteReference<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2086,8 +2090,8 @@ fn compare_footnote_reference<'b, 's>(
|
||||
|
||||
fn compare_citation<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Citation<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Citation<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2107,8 +2111,8 @@ fn compare_citation<'b, 's>(
|
||||
|
||||
fn compare_citation_reference<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s CitationReference<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b CitationReference<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2128,8 +2132,8 @@ fn compare_citation_reference<'b, 's>(
|
||||
|
||||
fn compare_inline_babel_call<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s InlineBabelCall<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b InlineBabelCall<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2149,8 +2153,8 @@ fn compare_inline_babel_call<'b, 's>(
|
||||
|
||||
fn compare_inline_source_block<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s InlineSourceBlock<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b InlineSourceBlock<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2170,8 +2174,8 @@ fn compare_inline_source_block<'b, 's>(
|
||||
|
||||
fn compare_line_break<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s LineBreak<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b LineBreak<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2189,8 +2193,8 @@ fn compare_line_break<'b, 's>(
|
||||
|
||||
fn compare_target<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Target<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Target<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2210,8 +2214,8 @@ fn compare_target<'b, 's>(
|
||||
|
||||
fn compare_statistics_cookie<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s StatisticsCookie<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b StatisticsCookie<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2231,8 +2235,8 @@ fn compare_statistics_cookie<'b, 's>(
|
||||
|
||||
fn compare_subscript<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Subscript<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Subscript<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
@ -2252,8 +2256,8 @@ fn compare_subscript<'b, 's>(
|
||||
|
||||
fn compare_superscript<'b, 's>(
|
||||
_source: &'s str,
|
||||
emacs: &'s Token<'s>,
|
||||
rust: &'s Superscript<'s>,
|
||||
emacs: &'b Token<'s>,
|
||||
rust: &'b Superscript<'s>,
|
||||
) -> Result<DiffEntry<'b, 's>, Box<dyn std::error::Error>> {
|
||||
let this_status = DiffStatus::Good;
|
||||
let message = None;
|
||||
|
@ -77,61 +77,61 @@ impl<'s, I: ElispFact<'s>> GetElispFact<'s> for I {
|
||||
impl<'r, 's> GetElispFact<'s> for AstNode<'r, 's> {
|
||||
fn get_elisp_fact<'b>(&'b self) -> &'b dyn ElispFact<'s> {
|
||||
match self {
|
||||
AstNode::Document(_) => todo!(),
|
||||
AstNode::Heading(_) => todo!(),
|
||||
AstNode::Section(_) => todo!(),
|
||||
AstNode::Paragraph(_) => todo!(),
|
||||
AstNode::PlainList(_) => todo!(),
|
||||
AstNode::PlainListItem(_) => todo!(),
|
||||
AstNode::GreaterBlock(_) => todo!(),
|
||||
AstNode::DynamicBlock(_) => todo!(),
|
||||
AstNode::FootnoteDefinition(_) => todo!(),
|
||||
AstNode::Comment(_) => todo!(),
|
||||
AstNode::Drawer(_) => todo!(),
|
||||
AstNode::PropertyDrawer(_) => todo!(),
|
||||
AstNode::NodeProperty(_) => todo!(),
|
||||
AstNode::Table(_) => todo!(),
|
||||
AstNode::TableRow(_) => todo!(),
|
||||
AstNode::VerseBlock(_) => todo!(),
|
||||
AstNode::CommentBlock(_) => todo!(),
|
||||
AstNode::ExampleBlock(_) => todo!(),
|
||||
AstNode::ExportBlock(_) => todo!(),
|
||||
AstNode::SrcBlock(_) => todo!(),
|
||||
AstNode::Clock(_) => todo!(),
|
||||
AstNode::DiarySexp(_) => todo!(),
|
||||
AstNode::Planning(_) => todo!(),
|
||||
AstNode::FixedWidthArea(_) => todo!(),
|
||||
AstNode::HorizontalRule(_) => todo!(),
|
||||
AstNode::Keyword(_) => todo!(),
|
||||
AstNode::BabelCall(_) => todo!(),
|
||||
AstNode::LatexEnvironment(_) => todo!(),
|
||||
AstNode::Bold(_) => todo!(),
|
||||
AstNode::Italic(_) => todo!(),
|
||||
AstNode::Underline(_) => todo!(),
|
||||
AstNode::StrikeThrough(_) => todo!(),
|
||||
AstNode::Code(_) => todo!(),
|
||||
AstNode::Verbatim(_) => todo!(),
|
||||
AstNode::PlainText(_) => todo!(),
|
||||
AstNode::RegularLink(_) => todo!(),
|
||||
AstNode::RadioLink(_) => todo!(),
|
||||
AstNode::RadioTarget(_) => todo!(),
|
||||
AstNode::PlainLink(_) => todo!(),
|
||||
AstNode::AngleLink(_) => todo!(),
|
||||
AstNode::OrgMacro(_) => todo!(),
|
||||
AstNode::Entity(_) => todo!(),
|
||||
AstNode::LatexFragment(_) => todo!(),
|
||||
AstNode::ExportSnippet(_) => todo!(),
|
||||
AstNode::FootnoteReference(_) => todo!(),
|
||||
AstNode::Citation(_) => todo!(),
|
||||
AstNode::CitationReference(_) => todo!(),
|
||||
AstNode::InlineBabelCall(_) => todo!(),
|
||||
AstNode::InlineSourceBlock(_) => todo!(),
|
||||
AstNode::LineBreak(_) => todo!(),
|
||||
AstNode::Target(_) => todo!(),
|
||||
AstNode::StatisticsCookie(_) => todo!(),
|
||||
AstNode::Subscript(_) => todo!(),
|
||||
AstNode::Superscript(_) => todo!(),
|
||||
AstNode::TableCell(_) => todo!(),
|
||||
AstNode::Document(inner) => *inner,
|
||||
AstNode::Heading(inner) => *inner,
|
||||
AstNode::Section(inner) => *inner,
|
||||
AstNode::Paragraph(inner) => *inner,
|
||||
AstNode::PlainList(inner) => *inner,
|
||||
AstNode::PlainListItem(inner) => *inner,
|
||||
AstNode::GreaterBlock(inner) => *inner,
|
||||
AstNode::DynamicBlock(inner) => *inner,
|
||||
AstNode::FootnoteDefinition(inner) => *inner,
|
||||
AstNode::Comment(inner) => *inner,
|
||||
AstNode::Drawer(inner) => *inner,
|
||||
AstNode::PropertyDrawer(inner) => *inner,
|
||||
AstNode::NodeProperty(inner) => *inner,
|
||||
AstNode::Table(inner) => *inner,
|
||||
AstNode::TableRow(inner) => *inner,
|
||||
AstNode::VerseBlock(inner) => *inner,
|
||||
AstNode::CommentBlock(inner) => *inner,
|
||||
AstNode::ExampleBlock(inner) => *inner,
|
||||
AstNode::ExportBlock(inner) => *inner,
|
||||
AstNode::SrcBlock(inner) => *inner,
|
||||
AstNode::Clock(inner) => *inner,
|
||||
AstNode::DiarySexp(inner) => *inner,
|
||||
AstNode::Planning(inner) => *inner,
|
||||
AstNode::FixedWidthArea(inner) => *inner,
|
||||
AstNode::HorizontalRule(inner) => *inner,
|
||||
AstNode::Keyword(inner) => *inner,
|
||||
AstNode::BabelCall(inner) => *inner,
|
||||
AstNode::LatexEnvironment(inner) => *inner,
|
||||
AstNode::Bold(inner) => *inner,
|
||||
AstNode::Italic(inner) => *inner,
|
||||
AstNode::Underline(inner) => *inner,
|
||||
AstNode::StrikeThrough(inner) => *inner,
|
||||
AstNode::Code(inner) => *inner,
|
||||
AstNode::Verbatim(inner) => *inner,
|
||||
AstNode::PlainText(inner) => *inner,
|
||||
AstNode::RegularLink(inner) => *inner,
|
||||
AstNode::RadioLink(inner) => *inner,
|
||||
AstNode::RadioTarget(inner) => *inner,
|
||||
AstNode::PlainLink(inner) => *inner,
|
||||
AstNode::AngleLink(inner) => *inner,
|
||||
AstNode::OrgMacro(inner) => *inner,
|
||||
AstNode::Entity(inner) => *inner,
|
||||
AstNode::LatexFragment(inner) => *inner,
|
||||
AstNode::ExportSnippet(inner) => *inner,
|
||||
AstNode::FootnoteReference(inner) => *inner,
|
||||
AstNode::Citation(inner) => *inner,
|
||||
AstNode::CitationReference(inner) => *inner,
|
||||
AstNode::InlineBabelCall(inner) => *inner,
|
||||
AstNode::InlineSourceBlock(inner) => *inner,
|
||||
AstNode::LineBreak(inner) => *inner,
|
||||
AstNode::Target(inner) => *inner,
|
||||
AstNode::StatisticsCookie(inner) => *inner,
|
||||
AstNode::Subscript(inner) => *inner,
|
||||
AstNode::Superscript(inner) => *inner,
|
||||
AstNode::TableCell(inner) => *inner,
|
||||
AstNode::Timestamp(inner) => *inner,
|
||||
}
|
||||
}
|
||||
|
@ -41,8 +41,8 @@ pub(crate) fn compare_standard_properties<
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) fn assert_name<'s, S: AsRef<str>>(
|
||||
emacs: &'s Token<'s>,
|
||||
pub(crate) fn assert_name<'b, 's, S: AsRef<str>>(
|
||||
emacs: &'b Token<'s>,
|
||||
name: S,
|
||||
) -> Result<(), Box<dyn std::error::Error>> {
|
||||
let name = name.as_ref();
|
||||
@ -100,8 +100,8 @@ struct EmacsStandardProperties {
|
||||
post_blank: Option<usize>,
|
||||
}
|
||||
|
||||
fn get_emacs_standard_properties<'s>(
|
||||
emacs: &'s Token<'s>,
|
||||
fn get_emacs_standard_properties<'b, 's>(
|
||||
emacs: &'b Token<'s>,
|
||||
) -> Result<EmacsStandardProperties, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let attributes_child = children
|
||||
@ -173,10 +173,10 @@ fn maybe_token_to_usize(
|
||||
/// Returns Ok(None) if value is nil.
|
||||
///
|
||||
/// Returns error if the attribute is not specified on the token at all.
|
||||
pub(crate) fn get_property<'s, 'x>(
|
||||
emacs: &'s Token<'s>,
|
||||
pub(crate) fn get_property<'b, 's, 'x>(
|
||||
emacs: &'b Token<'s>,
|
||||
key: &'x str,
|
||||
) -> Result<Option<&'s Token<'s>>, Box<dyn std::error::Error>> {
|
||||
) -> Result<Option<&'b Token<'s>>, Box<dyn std::error::Error>> {
|
||||
let children = emacs.as_list()?;
|
||||
let attributes_child = children
|
||||
.iter()
|
||||
@ -196,8 +196,8 @@ pub(crate) fn get_property<'s, 'x>(
|
||||
/// Get a named property containing an unquoted atom from the emacs token.
|
||||
///
|
||||
/// Returns None if key is not found.
|
||||
pub(crate) fn get_property_unquoted_atom<'s, 'x>(
|
||||
emacs: &'s Token<'s>,
|
||||
pub(crate) fn get_property_unquoted_atom<'b, 's, 'x>(
|
||||
emacs: &'b Token<'s>,
|
||||
key: &'x str,
|
||||
) -> Result<Option<&'s str>, Box<dyn std::error::Error>> {
|
||||
Ok(get_property(emacs, key)?
|
||||
@ -208,8 +208,8 @@ pub(crate) fn get_property_unquoted_atom<'s, 'x>(
|
||||
/// Get a named property containing an quoted string from the emacs token.
|
||||
///
|
||||
/// Returns None if key is not found.
|
||||
pub(crate) fn get_property_quoted_string<'s, 'x>(
|
||||
emacs: &'s Token<'s>,
|
||||
pub(crate) fn get_property_quoted_string<'b, 's, 'x>(
|
||||
emacs: &'b Token<'s>,
|
||||
key: &'x str,
|
||||
) -> Result<Option<String>, Box<dyn std::error::Error>> {
|
||||
Ok(get_property(emacs, key)?
|
||||
@ -224,8 +224,8 @@ pub(crate) fn get_property_quoted_string<'s, 'x>(
|
||||
/// This uses the elisp convention of nil == false, non-nil == true.
|
||||
///
|
||||
/// Returns false if key is not found.
|
||||
pub(crate) fn get_property_boolean<'s, 'x>(
|
||||
emacs: &'s Token<'s>,
|
||||
pub(crate) fn get_property_boolean<'b, 's, 'x>(
|
||||
emacs: &'b Token<'s>,
|
||||
key: &'x str,
|
||||
) -> Result<bool, Box<dyn std::error::Error>> {
|
||||
Ok(get_property(emacs, key)?
|
||||
|
@ -254,61 +254,61 @@ to_ast_node!(&'r Timestamp<'s>, AstNode::Timestamp);
|
||||
impl<'r, 's> GetStandardProperties<'s> for AstNode<'r, 's> {
|
||||
fn get_standard_properties<'b>(&'b self) -> &'b dyn crate::types::StandardProperties<'s> {
|
||||
match self {
|
||||
AstNode::Document(_) => todo!(),
|
||||
AstNode::Heading(_) => todo!(),
|
||||
AstNode::Section(_) => todo!(),
|
||||
AstNode::Paragraph(_) => todo!(),
|
||||
AstNode::PlainList(_) => todo!(),
|
||||
AstNode::PlainListItem(_) => todo!(),
|
||||
AstNode::GreaterBlock(_) => todo!(),
|
||||
AstNode::DynamicBlock(_) => todo!(),
|
||||
AstNode::FootnoteDefinition(_) => todo!(),
|
||||
AstNode::Comment(_) => todo!(),
|
||||
AstNode::Drawer(_) => todo!(),
|
||||
AstNode::PropertyDrawer(_) => todo!(),
|
||||
AstNode::NodeProperty(_) => todo!(),
|
||||
AstNode::Table(_) => todo!(),
|
||||
AstNode::TableRow(_) => todo!(),
|
||||
AstNode::VerseBlock(_) => todo!(),
|
||||
AstNode::CommentBlock(_) => todo!(),
|
||||
AstNode::ExampleBlock(_) => todo!(),
|
||||
AstNode::ExportBlock(_) => todo!(),
|
||||
AstNode::SrcBlock(_) => todo!(),
|
||||
AstNode::Clock(_) => todo!(),
|
||||
AstNode::DiarySexp(_) => todo!(),
|
||||
AstNode::Planning(_) => todo!(),
|
||||
AstNode::FixedWidthArea(_) => todo!(),
|
||||
AstNode::HorizontalRule(_) => todo!(),
|
||||
AstNode::Keyword(_) => todo!(),
|
||||
AstNode::BabelCall(_) => todo!(),
|
||||
AstNode::LatexEnvironment(_) => todo!(),
|
||||
AstNode::Bold(_) => todo!(),
|
||||
AstNode::Italic(_) => todo!(),
|
||||
AstNode::Underline(_) => todo!(),
|
||||
AstNode::StrikeThrough(_) => todo!(),
|
||||
AstNode::Code(_) => todo!(),
|
||||
AstNode::Verbatim(_) => todo!(),
|
||||
AstNode::PlainText(_) => todo!(),
|
||||
AstNode::RegularLink(_) => todo!(),
|
||||
AstNode::RadioLink(_) => todo!(),
|
||||
AstNode::RadioTarget(_) => todo!(),
|
||||
AstNode::PlainLink(_) => todo!(),
|
||||
AstNode::AngleLink(_) => todo!(),
|
||||
AstNode::OrgMacro(_) => todo!(),
|
||||
AstNode::Entity(_) => todo!(),
|
||||
AstNode::LatexFragment(_) => todo!(),
|
||||
AstNode::ExportSnippet(_) => todo!(),
|
||||
AstNode::FootnoteReference(_) => todo!(),
|
||||
AstNode::Citation(_) => todo!(),
|
||||
AstNode::CitationReference(_) => todo!(),
|
||||
AstNode::InlineBabelCall(_) => todo!(),
|
||||
AstNode::InlineSourceBlock(_) => todo!(),
|
||||
AstNode::LineBreak(_) => todo!(),
|
||||
AstNode::Target(_) => todo!(),
|
||||
AstNode::StatisticsCookie(_) => todo!(),
|
||||
AstNode::Subscript(_) => todo!(),
|
||||
AstNode::Superscript(_) => todo!(),
|
||||
AstNode::TableCell(_) => todo!(),
|
||||
AstNode::Document(inner) => *inner,
|
||||
AstNode::Heading(inner) => *inner,
|
||||
AstNode::Section(inner) => *inner,
|
||||
AstNode::Paragraph(inner) => *inner,
|
||||
AstNode::PlainList(inner) => *inner,
|
||||
AstNode::PlainListItem(inner) => *inner,
|
||||
AstNode::GreaterBlock(inner) => *inner,
|
||||
AstNode::DynamicBlock(inner) => *inner,
|
||||
AstNode::FootnoteDefinition(inner) => *inner,
|
||||
AstNode::Comment(inner) => *inner,
|
||||
AstNode::Drawer(inner) => *inner,
|
||||
AstNode::PropertyDrawer(inner) => *inner,
|
||||
AstNode::NodeProperty(inner) => *inner,
|
||||
AstNode::Table(inner) => *inner,
|
||||
AstNode::TableRow(inner) => *inner,
|
||||
AstNode::VerseBlock(inner) => *inner,
|
||||
AstNode::CommentBlock(inner) => *inner,
|
||||
AstNode::ExampleBlock(inner) => *inner,
|
||||
AstNode::ExportBlock(inner) => *inner,
|
||||
AstNode::SrcBlock(inner) => *inner,
|
||||
AstNode::Clock(inner) => *inner,
|
||||
AstNode::DiarySexp(inner) => *inner,
|
||||
AstNode::Planning(inner) => *inner,
|
||||
AstNode::FixedWidthArea(inner) => *inner,
|
||||
AstNode::HorizontalRule(inner) => *inner,
|
||||
AstNode::Keyword(inner) => *inner,
|
||||
AstNode::BabelCall(inner) => *inner,
|
||||
AstNode::LatexEnvironment(inner) => *inner,
|
||||
AstNode::Bold(inner) => *inner,
|
||||
AstNode::Italic(inner) => *inner,
|
||||
AstNode::Underline(inner) => *inner,
|
||||
AstNode::StrikeThrough(inner) => *inner,
|
||||
AstNode::Code(inner) => *inner,
|
||||
AstNode::Verbatim(inner) => *inner,
|
||||
AstNode::PlainText(inner) => *inner,
|
||||
AstNode::RegularLink(inner) => *inner,
|
||||
AstNode::RadioLink(inner) => *inner,
|
||||
AstNode::RadioTarget(inner) => *inner,
|
||||
AstNode::PlainLink(inner) => *inner,
|
||||
AstNode::AngleLink(inner) => *inner,
|
||||
AstNode::OrgMacro(inner) => *inner,
|
||||
AstNode::Entity(inner) => *inner,
|
||||
AstNode::LatexFragment(inner) => *inner,
|
||||
AstNode::ExportSnippet(inner) => *inner,
|
||||
AstNode::FootnoteReference(inner) => *inner,
|
||||
AstNode::Citation(inner) => *inner,
|
||||
AstNode::CitationReference(inner) => *inner,
|
||||
AstNode::InlineBabelCall(inner) => *inner,
|
||||
AstNode::InlineSourceBlock(inner) => *inner,
|
||||
AstNode::LineBreak(inner) => *inner,
|
||||
AstNode::Target(inner) => *inner,
|
||||
AstNode::StatisticsCookie(inner) => *inner,
|
||||
AstNode::Subscript(inner) => *inner,
|
||||
AstNode::Superscript(inner) => *inner,
|
||||
AstNode::TableCell(inner) => *inner,
|
||||
AstNode::Timestamp(inner) => *inner,
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user