diff options
Diffstat (limited to 'document_tree')
| -rw-r--r-- | document_tree/src/attribute_types.rs | 20 | ||||
| -rw-r--r-- | document_tree/src/element_categories.rs | 24 | ||||
| -rw-r--r-- | document_tree/src/elements.rs | 42 | ||||
| -rw-r--r-- | document_tree/src/lib.rs | 6 | ||||
| -rw-r--r-- | document_tree/src/url.rs | 2 |
5 files changed, 47 insertions, 47 deletions
diff --git a/document_tree/src/attribute_types.rs b/document_tree/src/attribute_types.rs index 411b24d..ef00544 100644 --- a/document_tree/src/attribute_types.rs +++ b/document_tree/src/attribute_types.rs @@ -15,9 +15,13 @@ pub enum EnumeratedListType { UpperRoman, } -#[derive(Debug,PartialEq,Eq,Hash,Serialize,Clone)] -pub enum FixedSpace { Default, Preserve } // yes, default really is not “Default” -impl Default for FixedSpace { fn default() -> FixedSpace { FixedSpace::Preserve } } +#[derive(Default,Debug,PartialEq,Eq,Hash,Serialize,Clone)] +pub enum FixedSpace { + Default, + // yes, default really is not “Default” + #[default] + Preserve, +} #[derive(Debug,PartialEq,Eq,Hash,Serialize,Clone)] pub enum AlignH { Left, Center, Right} #[derive(Debug,PartialEq,Eq,Hash,Serialize,Clone)] pub enum AlignHV { Top, Middle, Bottom, Left, Center, Right } @@ -32,12 +36,7 @@ impl Default for FixedSpace { fn default() -> FixedSpace { FixedSpace::Preserve // The table DTD has the cols attribute of tgroup as required, but having // TableGroupCols not implement Default would leave no possible implementation // for TableGroup::with_children. -#[derive(Debug,PartialEq,Eq,Hash,Serialize,Clone)] pub struct TableGroupCols(pub usize); -impl Default for TableGroupCols { - fn default() -> Self { - TableGroupCols(0) - } -} +#[derive(Default,Debug,PartialEq,Eq,Hash,Serialize,Clone)] pub struct TableGroupCols(pub usize); // no eq for f64 #[derive(Debug,PartialEq,Serialize,Clone)] @@ -104,7 +103,7 @@ impl FromStr for Measure { #[cfg(test)] mod parse_tests { use super::*; - + #[test] fn measure() { let _a: Measure = "1.5em".parse().unwrap(); @@ -152,4 +151,3 @@ impl CanBeEmpty for bool { impl CanBeEmpty for FixedSpace { fn is_empty(&self) -> bool { self == &FixedSpace::default() } } - diff --git a/document_tree/src/element_categories.rs b/document_tree/src/element_categories.rs index 24a0798..1f5fcde 100644 --- a/document_tree/src/element_categories.rs +++ b/document_tree/src/element_categories.rs @@ -25,9 +25,9 @@ macro_rules! impl_into { $( impl_into!($subcat::$entry => $supcat); )+ }; ($subcat:ident :: $entry:ident => $supcat:ident ) => { - impl Into<$supcat> for $entry { - fn into(self) -> $supcat { - $supcat::$subcat(Box::new(self.into())) + impl From<$entry> for $supcat { + fn from(inner: $entry) -> Self { + $supcat::$subcat(Box::new(inner.into())) } } }; @@ -47,7 +47,7 @@ macro_rules! synonymous_enum { pub enum $name { $( $entry(Box<$entry>), )* } - + impl Debug for $name { fn fmt(&self, fmt: &mut Formatter) -> Result<(), fmt::Error> { match *self { @@ -55,10 +55,10 @@ macro_rules! synonymous_enum { } } } - - $( impl Into<$name> for $entry { - fn into(self) -> $name { - $name::$entry(Box::new(self)) + + $( impl From<$entry> for $name { + fn from(inner: $entry) -> Self { + $name::$entry(Box::new(inner)) } } )* }; @@ -106,22 +106,22 @@ synonymous_enum!(SubTableGroup { TableColspec, TableHead, TableBody }); mod conversion_tests { use std::default::Default; use super::*; - + #[test] fn basic() { let _: BodyElement = Paragraph::default().into(); } - + #[test] fn more() { let _: SubStructure = Paragraph::default().into(); } - + #[test] fn even_more() { let _: StructuralSubElement = Paragraph::default().into(); } - + #[test] fn super_() { let be: BodyElement = Paragraph::default().into(); diff --git a/document_tree/src/elements.rs b/document_tree/src/elements.rs index 1db0a24..e32c677 100644 --- a/document_tree/src/elements.rs +++ b/document_tree/src/elements.rs @@ -59,7 +59,7 @@ macro_rules! impl_element { ($name:ident) => ( macro_rules! impl_children { ($name:ident, $childtype:ident) => ( impl HasChildren<$childtype> for $name { #[allow(clippy::needless_update)] - fn with_children(children: Vec<$childtype>) -> $name { $name { children: children, ..Default::default() } } + fn with_children(children: Vec<$childtype>) -> $name { $name { children, ..Default::default() } } fn children (& self) -> & Vec<$childtype> { & self.children } fn children_mut(&mut self) -> &mut Vec<$childtype> { &mut self.children } } @@ -68,7 +68,7 @@ macro_rules! impl_children { ($name:ident, $childtype:ident) => ( macro_rules! impl_extra { ($name:ident $($more:tt)*) => ( impl ExtraAttributes<extra_attributes::$name> for $name { #[allow(clippy::needless_update)] - fn with_extra(extra: extra_attributes::$name) -> $name { $name { common: Default::default(), extra: extra $($more)* } } + fn with_extra(extra: extra_attributes::$name) -> $name { $name { common: Default::default(), extra $($more)* } } fn extra (& self) -> & extra_attributes::$name { & self.extra } fn extra_mut(&mut self) -> &mut extra_attributes::$name { &mut self.extra } } @@ -82,7 +82,7 @@ impl<T, C, A> HasExtraAndChildren<C, A> for T where T: HasChildren<C> + ExtraAtt #[allow(clippy::needless_update)] fn with_extra_and_children(extra: A, mut children: Vec<C>) -> Self { let mut r = Self::with_extra(extra); - r.children_mut().extend(children.drain(..)); + r.children_mut().append(&mut children); r } } @@ -96,11 +96,11 @@ macro_rules! impl_new {( ) => ( $(#[$attr])* #[derive(Debug,PartialEq,Serialize,Clone)] - pub struct $name { $( + pub struct $name { $( $(#[$fattr])* $field: $typ, )* } impl $name { - pub fn new( $( $field: $typ, )* ) -> $name { $name { $( $field: $field, )* } } + pub fn new( $( $field: $typ, )* ) -> $name { $name { $( $field, )* } } } )} @@ -156,14 +156,14 @@ impl_elems!( (Section, StructuralSubElement) (Topic, SubTopic) (Sidebar, SubSidebar) - + //structural subelements (Title, TextOrInlineElement) (Subtitle, TextOrInlineElement) (Decoration, DecorationElement) (Docinfo, BibliographicElement) (Transition) - + //bibliographic elements (Author, TextOrInlineElement) (Authors, AuthorInfo) @@ -176,11 +176,11 @@ impl_elems!( (Date, TextOrInlineElement) (Copyright, TextOrInlineElement) (Field, SubField) - + //decoration elements (Header, BodyElement) (Footer, BodyElement) - + //simple body elements (Paragraph, TextOrInlineElement) (LiteralBlock, TextOrInlineElement; +) @@ -193,17 +193,17 @@ impl_elems!( (Target; +) (Raw, String; +) (Image; *) - + //compound body elements (Compound, BodyElement) (Container, BodyElement) - + (BulletList, ListItem; +) (EnumeratedList, ListItem; +) (DefinitionList, DefinitionListItem) (FieldList, Field) (OptionList, OptionListItem) - + (LineBlock, SubLineBlock) (BlockQuote, SubBlockQuote) (Admonition, SubTopic) @@ -229,32 +229,32 @@ impl_elems!( (TableRow, TableEntry; +) (TableEntry, BodyElement; +) (TableColspec; +) - + //body sub elements (ListItem, BodyElement) - + (DefinitionListItem, SubDLItem) (Term, TextOrInlineElement) (Classifier, TextOrInlineElement) (Definition, BodyElement) - + (FieldName, TextOrInlineElement) (FieldBody, BodyElement) - + (OptionListItem, SubOptionListItem) (OptionGroup, Option_) (Description, BodyElement) (Option_, SubOption) (OptionString, String) (OptionArgument, String; +) - + (Line, TextOrInlineElement) (Attribution, TextOrInlineElement) (Label, TextOrInlineElement) - + (Caption, TextOrInlineElement) (Legend, BodyElement) - + //inline elements (Emphasis, TextOrInlineElement) (Literal, String) @@ -272,12 +272,12 @@ impl_elems!( (Problematic, TextOrInlineElement; +) (Generated, TextOrInlineElement) (Math, String) - + //also have non-inline versions. Inline image is no figure child, inline target has content (TargetInline, String; +) (RawInline, String; +) (ImageInline; *) - + //text element = String ); diff --git a/document_tree/src/lib.rs b/document_tree/src/lib.rs index 9154725..00d6cb2 100644 --- a/document_tree/src/lib.rs +++ b/document_tree/src/lib.rs @@ -1,7 +1,9 @@ #![recursion_limit="256"] -///http://docutils.sourceforge.net/docs/ref/doctree.html -///serves as AST +/// See [doctree][] reference. +/// Serves as AST. +/// +/// [doctree]: http://docutils.sourceforge.net/docs/ref/doctree.html #[macro_use] mod macro_util; diff --git a/document_tree/src/url.rs b/document_tree/src/url.rs index 31a0536..543f9e5 100644 --- a/document_tree/src/url.rs +++ b/document_tree/src/url.rs @@ -57,7 +57,7 @@ impl Url { impl From<url::Url> for Url { fn from(url: url::Url) -> Self { - Url(url.into_string()) + Url(url.into()) } } |
