refacotr(orgize): remove some anonymous lifetimes

This commit is contained in:
PoiScript 2019-10-09 14:56:29 +08:00
parent a8861cbe9c
commit 0c76fd80f6
5 changed files with 24 additions and 32 deletions

View file

@ -107,7 +107,7 @@ impl From<FromUtf8Error> for MyError {
struct MyHtmlHandler(DefaultHtmlHandler); struct MyHtmlHandler(DefaultHtmlHandler);
impl HtmlHandler<MyError> for MyHtmlHandler { impl HtmlHandler<MyError> for MyHtmlHandler {
fn start<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), MyError> { fn start<W: Write>(&mut self, mut w: W, element: &Element) -> Result<(), MyError> {
if let Element::Title(title) = element { if let Element::Title(title) = element {
if title.level > 6 { if title.level > 6 {
return Err(MyError::Heading); return Err(MyError::Heading);
@ -126,7 +126,7 @@ impl HtmlHandler<MyError> for MyHtmlHandler {
Ok(()) Ok(())
} }
fn end<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), MyError> { fn end<W: Write>(&mut self, mut w: W, element: &Element) -> Result<(), MyError> {
if let Element::Title(title) = element { if let Element::Title(title) = element {
write!(w, "</a></h{}>", title.level)?; write!(w, "</a></h{}>", title.level)?;
} else { } else {

View file

@ -33,7 +33,7 @@ impl From<FromUtf8Error> for MyError {
struct MyHtmlHandler(DefaultHtmlHandler); struct MyHtmlHandler(DefaultHtmlHandler);
impl HtmlHandler<MyError> for MyHtmlHandler { impl HtmlHandler<MyError> for MyHtmlHandler {
fn start<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), MyError> { fn start<W: Write>(&mut self, mut w: W, element: &Element) -> Result<(), MyError> {
if let Element::Title(title) = element { if let Element::Title(title) = element {
if title.level > 6 { if title.level > 6 {
return Err(MyError::Heading); return Err(MyError::Heading);
@ -52,7 +52,7 @@ impl HtmlHandler<MyError> for MyHtmlHandler {
Ok(()) Ok(())
} }
fn end<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), MyError> { fn end<W: Write>(&mut self, mut w: W, element: &Element) -> Result<(), MyError> {
if let Element::Title(title) = element { if let Element::Title(title) = element {
write!(w, "</a></h{}>", title.level)?; write!(w, "</a></h{}>", title.level)?;
} else { } else {

View file

@ -9,7 +9,7 @@ use crate::export::write_datetime;
pub struct Escape<S: AsRef<str>>(pub S); pub struct Escape<S: AsRef<str>>(pub S);
impl<S: AsRef<str>> fmt::Display for Escape<S> { impl<S: AsRef<str>> fmt::Display for Escape<S> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let mut pos = 0; let mut pos = 0;
let bytes = self.0.as_ref().as_bytes(); let bytes = self.0.as_ref().as_bytes();
@ -308,7 +308,7 @@ mod syntect_handler {
} }
impl<E: From<Error>, H: HtmlHandler<E>> HtmlHandler<E> for SyntectHtmlHandler<E, H> { impl<E: From<Error>, H: HtmlHandler<E>> HtmlHandler<E> for SyntectHtmlHandler<E, H> {
fn start<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), E> { fn start<W: Write>(&mut self, mut w: W, element: &Element) -> Result<(), E> {
match element { match element {
Element::InlineSrc(inline_src) => write!( Element::InlineSrc(inline_src) => write!(
w, w,
@ -342,7 +342,7 @@ mod syntect_handler {
Ok(()) Ok(())
} }
fn end<W: Write>(&mut self, w: W, element: &Element<'_>) -> Result<(), E> { fn end<W: Write>(&mut self, w: W, element: &Element) -> Result<(), E> {
self.inner.end(w, element) self.inner.end(w, element)
} }
} }

View file

@ -118,7 +118,7 @@
//! struct MyHtmlHandler(DefaultHtmlHandler); //! struct MyHtmlHandler(DefaultHtmlHandler);
//! //!
//! impl HtmlHandler<MyError> for MyHtmlHandler { //! impl HtmlHandler<MyError> for MyHtmlHandler {
//! fn start<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), MyError> { //! fn start<W: Write>(&mut self, mut w: W, element: &Element) -> Result<(), MyError> {
//! if let Element::Title(title) = element { //! if let Element::Title(title) = element {
//! if title.level > 6 { //! if title.level > 6 {
//! return Err(MyError::Heading); //! return Err(MyError::Heading);
@ -137,7 +137,7 @@
//! Ok(()) //! Ok(())
//! } //! }
//! //!
//! fn end<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), MyError> { //! fn end<W: Write>(&mut self, mut w: W, element: &Element) -> Result<(), MyError> {
//! if let Element::Title(title) = element { //! if let Element::Title(title) = element {
//! write!(w, "</a></h{}>", title.level)?; //! write!(w, "</a></h{}>", title.level)?;
//! } else { //! } else {

View file

@ -15,7 +15,7 @@ pub struct HeadlineNode {
} }
impl HeadlineNode { impl HeadlineNode {
pub(crate) fn new(node: NodeId, level: usize, org: &Org<'_>) -> HeadlineNode { pub(crate) fn new(node: NodeId, level: usize, org: &Org) -> HeadlineNode {
let title_node = org.arena[node].first_child().unwrap(); let title_node = org.arena[node].first_child().unwrap();
let section_node = if let Some(node) = org.arena[title_node].next_sibling() { let section_node = if let Some(node) = org.arena[title_node].next_sibling() {
if let Element::Section = org.arena[node].get() { if let Element::Section = org.arena[node].get() {
@ -127,7 +127,7 @@ impl HeadlineNode {
org.debug_validate(); org.debug_validate();
} }
pub fn parent(self, org: &Org<'_>) -> Option<HeadlineNode> { pub fn parent(self, org: &Org) -> Option<HeadlineNode> {
org.arena[self.node].parent().map(|node| { org.arena[self.node].parent().map(|node| {
if let Element::Headline { level } = *org.arena[node].get() { if let Element::Headline { level } = *org.arena[node].get() {
HeadlineNode::new(node, level, org) HeadlineNode::new(node, level, org)
@ -137,7 +137,7 @@ impl HeadlineNode {
}) })
} }
pub fn children<'c>(self, org: &'c Org<'_>) -> impl Iterator<Item = HeadlineNode> + 'c { pub fn children<'a>(self, org: &'a Org) -> impl Iterator<Item = HeadlineNode> + 'a {
self.node.children(&org.arena).filter_map(move |node| { self.node.children(&org.arena).filter_map(move |node| {
if let Element::Headline { level } = *org.arena[node].get() { if let Element::Headline { level } = *org.arena[node].get() {
Some(HeadlineNode::new(node, level, org)) Some(HeadlineNode::new(node, level, org))
@ -147,7 +147,7 @@ impl HeadlineNode {
}) })
} }
pub fn previous_headline(self, org: &Org<'_>) -> Option<HeadlineNode> { pub fn previous_headline(self, org: &Org) -> Option<HeadlineNode> {
if let Some(node) = org.arena[self.node].previous_sibling() { if let Some(node) = org.arena[self.node].previous_sibling() {
if let Element::Headline { level } = *org.arena[node].get() { if let Element::Headline { level } = *org.arena[node].get() {
Some(HeadlineNode::new(node, level, org)) Some(HeadlineNode::new(node, level, org))
@ -160,7 +160,7 @@ impl HeadlineNode {
} }
} }
pub fn next_headline(self, org: &Org<'_>) -> Option<HeadlineNode> { pub fn next_headline(self, org: &Org) -> Option<HeadlineNode> {
if let Some(node) = org.arena[self.node].next_sibling() { if let Some(node) = org.arena[self.node].next_sibling() {
if let Element::Headline { level } = *org.arena[node].get() { if let Element::Headline { level } = *org.arena[node].get() {
Some(HeadlineNode::new(node, level, org)) Some(HeadlineNode::new(node, level, org))
@ -172,13 +172,13 @@ impl HeadlineNode {
} }
} }
pub fn detach(self, org: &mut Org<'_>) { pub fn detach(self, org: &mut Org) {
self.node.detach(&mut org.arena); self.node.detach(&mut org.arena);
org.debug_validate(); org.debug_validate();
} }
pub fn is_detached(self, org: &Org<'_>) -> bool { pub fn is_detached(self, org: &Org) -> bool {
self.parent(&org).is_none() self.parent(&org).is_none()
} }
@ -198,7 +198,7 @@ impl HeadlineNode {
} }
} }
pub fn append(self, headline: HeadlineNode, org: &mut Org<'_>) -> Result<(), OrgizeError> { pub fn append(self, headline: HeadlineNode, org: &mut Org) -> Result<(), OrgizeError> {
if !headline.is_detached(org) { if !headline.is_detached(org) {
return Err(OrgizeError::Detached { at: headline.node }); return Err(OrgizeError::Detached { at: headline.node });
} }
@ -216,7 +216,7 @@ impl HeadlineNode {
Ok(()) Ok(())
} }
pub fn prepend(self, headline: HeadlineNode, org: &mut Org<'_>) -> Result<(), OrgizeError> { pub fn prepend(self, headline: HeadlineNode, org: &mut Org) -> Result<(), OrgizeError> {
if !headline.is_detached(org) { if !headline.is_detached(org) {
return Err(OrgizeError::Detached { at: headline.node }); return Err(OrgizeError::Detached { at: headline.node });
} }
@ -238,11 +238,7 @@ impl HeadlineNode {
Ok(()) Ok(())
} }
pub fn insert_before( pub fn insert_before(self, headline: HeadlineNode, org: &mut Org) -> Result<(), OrgizeError> {
self,
headline: HeadlineNode,
org: &mut Org<'_>,
) -> Result<(), OrgizeError> {
if !headline.is_detached(org) { if !headline.is_detached(org) {
return Err(OrgizeError::Detached { at: headline.node }); return Err(OrgizeError::Detached { at: headline.node });
} }
@ -260,11 +256,7 @@ impl HeadlineNode {
Ok(()) Ok(())
} }
pub fn insert_after( pub fn insert_after(self, headline: HeadlineNode, org: &mut Org) -> Result<(), OrgizeError> {
self,
headline: HeadlineNode,
org: &mut Org<'_>,
) -> Result<(), OrgizeError> {
if !headline.is_detached(org) { if !headline.is_detached(org) {
return Err(OrgizeError::Detached { at: headline.node }); return Err(OrgizeError::Detached { at: headline.node });
} }
@ -291,7 +283,7 @@ pub struct DocumentNode {
} }
impl DocumentNode { impl DocumentNode {
pub(crate) fn new(org: &Org<'_>) -> DocumentNode { pub(crate) fn new(org: &Org) -> DocumentNode {
if let Some(node) = org.arena[org.root].first_child() { if let Some(node) = org.arena[org.root].first_child() {
if let Element::Section = org.arena[node].get() { if let Element::Section = org.arena[node].get() {
DocumentNode { DocumentNode {
@ -305,7 +297,7 @@ impl DocumentNode {
} }
} }
pub fn children<'c>(self, org: &'c Org<'_>) -> impl Iterator<Item = HeadlineNode> + 'c { pub fn children<'a>(self, org: &'a Org) -> impl Iterator<Item = HeadlineNode> + 'a {
org.root.children(&org.arena).filter_map(move |node| { org.root.children(&org.arena).filter_map(move |node| {
if let Element::Headline { level } = *org.arena[node].get() { if let Element::Headline { level } = *org.arena[node].get() {
Some(HeadlineNode::new(node, level, org)) Some(HeadlineNode::new(node, level, org))
@ -344,7 +336,7 @@ impl DocumentNode {
org.debug_validate(); org.debug_validate();
} }
pub fn append(self, headline: HeadlineNode, org: &mut Org<'_>) -> Result<(), OrgizeError> { pub fn append(self, headline: HeadlineNode, org: &mut Org) -> Result<(), OrgizeError> {
if !headline.is_detached(org) { if !headline.is_detached(org) {
return Err(OrgizeError::Detached { at: headline.node }); return Err(OrgizeError::Detached { at: headline.node });
} }
@ -360,7 +352,7 @@ impl DocumentNode {
Ok(()) Ok(())
} }
pub fn prepend(self, headline: HeadlineNode, org: &mut Org<'_>) -> Result<(), OrgizeError> { pub fn prepend(self, headline: HeadlineNode, org: &mut Org) -> Result<(), OrgizeError> {
if !headline.is_detached(org) { if !headline.is_detached(org) {
return Err(OrgizeError::Detached { at: headline.node }); return Err(OrgizeError::Detached { at: headline.node });
} }