feat: add Clone derive (#13)
This commit is contained in:
parent
317ca7333d
commit
8fb6e90f57
|
@ -142,7 +142,7 @@ impl<'a> RawBlock<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Special Block Element
|
/// Special Block Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct SpecialBlock<'a> {
|
pub struct SpecialBlock<'a> {
|
||||||
|
@ -171,7 +171,7 @@ impl SpecialBlock<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Quote Block Element
|
/// Quote Block Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct QuoteBlock<'a> {
|
pub struct QuoteBlock<'a> {
|
||||||
|
@ -197,7 +197,7 @@ impl QuoteBlock<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Center Block Element
|
/// Center Block Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct CenterBlock<'a> {
|
pub struct CenterBlock<'a> {
|
||||||
|
@ -223,7 +223,7 @@ impl CenterBlock<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Verse Block Element
|
/// Verse Block Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct VerseBlock<'a> {
|
pub struct VerseBlock<'a> {
|
||||||
|
@ -249,7 +249,7 @@ impl VerseBlock<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Comment Block Element
|
/// Comment Block Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct CommentBlock<'a> {
|
pub struct CommentBlock<'a> {
|
||||||
|
@ -273,7 +273,7 @@ impl CommentBlock<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Example Block Element
|
/// Example Block Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct ExampleBlock<'a> {
|
pub struct ExampleBlock<'a> {
|
||||||
|
@ -297,7 +297,7 @@ impl ExampleBlock<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Export Block Element
|
/// Export Block Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct ExportBlock<'a> {
|
pub struct ExportBlock<'a> {
|
||||||
|
@ -320,7 +320,7 @@ impl ExportBlock<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Src Block Element
|
/// Src Block Element
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct SourceBlock<'a> {
|
pub struct SourceBlock<'a> {
|
||||||
|
|
|
@ -16,7 +16,7 @@ use crate::parse::combinators::{blank_lines_count, eol};
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[cfg_attr(feature = "ser", serde(untagged))]
|
#[cfg_attr(feature = "ser", serde(untagged))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub enum Clock<'a> {
|
pub enum Clock<'a> {
|
||||||
/// Closed Clock
|
/// Closed Clock
|
||||||
Closed {
|
Closed {
|
||||||
|
|
|
@ -7,7 +7,7 @@ use nom::{
|
||||||
|
|
||||||
use crate::parse::combinators::{blank_lines_count, lines_while};
|
use crate::parse::combinators::{blank_lines_count, lines_while};
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default, Clone)]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct Comment<'a> {
|
pub struct Comment<'a> {
|
||||||
/// Comments value, with pound signs
|
/// Comments value, with pound signs
|
||||||
|
|
|
@ -13,7 +13,7 @@ use nom::{
|
||||||
/// Statistics Cookie Object
|
/// Statistics Cookie Object
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Cookie<'a> {
|
pub struct Cookie<'a> {
|
||||||
/// Full cookie value
|
/// Full cookie value
|
||||||
pub value: Cow<'a, str>,
|
pub value: Cow<'a, str>,
|
||||||
|
|
|
@ -11,7 +11,7 @@ use nom::{
|
||||||
use crate::parse::combinators::{blank_lines_count, eol, lines_till};
|
use crate::parse::combinators::{blank_lines_count, eol, lines_till};
|
||||||
|
|
||||||
/// Drawer Element
|
/// Drawer Element
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct Drawer<'a> {
|
pub struct Drawer<'a> {
|
||||||
|
|
|
@ -10,7 +10,7 @@ use nom::{
|
||||||
use crate::parse::combinators::{blank_lines_count, line, lines_till};
|
use crate::parse::combinators::{blank_lines_count, line, lines_till};
|
||||||
|
|
||||||
/// Dynamic Block Element
|
/// Dynamic Block Element
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct DynBlock<'a> {
|
pub struct DynBlock<'a> {
|
||||||
|
|
|
@ -7,7 +7,7 @@ use nom::{
|
||||||
|
|
||||||
use crate::parse::combinators::{blank_lines_count, lines_while};
|
use crate::parse::combinators::{blank_lines_count, lines_while};
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct FixedWidth<'a> {
|
pub struct FixedWidth<'a> {
|
||||||
|
|
|
@ -12,7 +12,7 @@ use crate::parse::combinators::{blank_lines_count, line};
|
||||||
/// Footnote Definition Element
|
/// Footnote Definition Element
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default, Clone)]
|
||||||
pub struct FnDef<'a> {
|
pub struct FnDef<'a> {
|
||||||
/// Footnote label, used for reference
|
/// Footnote label, used for reference
|
||||||
pub label: Cow<'a, str>,
|
pub label: Cow<'a, str>,
|
||||||
|
|
|
@ -12,7 +12,7 @@ use nom::{
|
||||||
/// Footnote Reference Element
|
/// Footnote Reference Element
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct FnRef<'a> {
|
pub struct FnRef<'a> {
|
||||||
/// Footnote label
|
/// Footnote label
|
||||||
pub label: Cow<'a, str>,
|
pub label: Cow<'a, str>,
|
||||||
|
|
|
@ -11,7 +11,7 @@ use nom::{
|
||||||
/// Inline Babel Call Object
|
/// Inline Babel Call Object
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default, Clone)]
|
||||||
pub struct InlineCall<'a> {
|
pub struct InlineCall<'a> {
|
||||||
/// Called code block name
|
/// Called code block name
|
||||||
pub name: Cow<'a, str>,
|
pub name: Cow<'a, str>,
|
||||||
|
|
|
@ -11,7 +11,7 @@ use nom::{
|
||||||
/// Inline Src Block Object
|
/// Inline Src Block Object
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct InlineSrc<'a> {
|
pub struct InlineSrc<'a> {
|
||||||
/// Language of the code
|
/// Language of the code
|
||||||
pub lang: Cow<'a, str>,
|
pub lang: Cow<'a, str>,
|
||||||
|
|
|
@ -83,7 +83,7 @@ impl<'a> RawKeyword<'a> {
|
||||||
/// Keyword Element
|
/// Keyword Element
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Keyword<'a> {
|
pub struct Keyword<'a> {
|
||||||
/// Keyword name
|
/// Keyword name
|
||||||
pub key: Cow<'a, str>,
|
pub key: Cow<'a, str>,
|
||||||
|
@ -108,7 +108,7 @@ impl Keyword<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Babel Call Element
|
/// Babel Call Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct BabelCall<'a> {
|
pub struct BabelCall<'a> {
|
||||||
|
|
|
@ -11,7 +11,7 @@ use nom::{
|
||||||
/// Link Object
|
/// Link Object
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Link<'a> {
|
pub struct Link<'a> {
|
||||||
/// Link destination
|
/// Link destination
|
||||||
pub path: Cow<'a, str>,
|
pub path: Cow<'a, str>,
|
||||||
|
|
|
@ -15,7 +15,7 @@ use nom::{
|
||||||
/// Plain List Element
|
/// Plain List Element
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct List {
|
pub struct List {
|
||||||
/// List indent, number of whitespaces
|
/// List indent, number of whitespaces
|
||||||
pub indent: usize,
|
pub indent: usize,
|
||||||
|
@ -29,7 +29,7 @@ pub struct List {
|
||||||
/// List Item Element
|
/// List Item Element
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct ListItem<'a> {
|
pub struct ListItem<'a> {
|
||||||
/// List item bullet
|
/// List item bullet
|
||||||
pub bullet: Cow<'a, str>,
|
pub bullet: Cow<'a, str>,
|
||||||
|
|
|
@ -11,7 +11,7 @@ use nom::{
|
||||||
/// Macro Object
|
/// Macro Object
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Macros<'a> {
|
pub struct Macros<'a> {
|
||||||
/// Macro name
|
/// Macro name
|
||||||
pub name: Cow<'a, str>,
|
pub name: Cow<'a, str>,
|
||||||
|
|
|
@ -5,7 +5,7 @@ use crate::elements::Timestamp;
|
||||||
/// Planning element
|
/// Planning element
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Planning<'a> {
|
pub struct Planning<'a> {
|
||||||
/// Timestamp associated to deadline keyword
|
/// Timestamp associated to deadline keyword
|
||||||
#[cfg_attr(feature = "ser", serde(skip_serializing_if = "Option::is_none"))]
|
#[cfg_attr(feature = "ser", serde(skip_serializing_if = "Option::is_none"))]
|
||||||
|
|
|
@ -4,7 +4,7 @@ use nom::{
|
||||||
|
|
||||||
use crate::parse::combinators::{blank_lines_count, eol};
|
use crate::parse::combinators::{blank_lines_count, eol};
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
pub struct Rule {
|
pub struct Rule {
|
||||||
|
|
|
@ -10,7 +10,7 @@ use nom::{
|
||||||
/// Export Snippet Object
|
/// Export Snippet Object
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Snippet<'a> {
|
pub struct Snippet<'a> {
|
||||||
/// Back-end name
|
/// Back-end name
|
||||||
pub name: Cow<'a, str>,
|
pub name: Cow<'a, str>,
|
||||||
|
|
|
@ -8,7 +8,7 @@ use nom::{
|
||||||
use crate::parse::combinators::{blank_lines_count, line, lines_while};
|
use crate::parse::combinators::{blank_lines_count, line, lines_while};
|
||||||
|
|
||||||
/// Table Element
|
/// Table Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[cfg_attr(feature = "ser", serde(tag = "table_type"))]
|
#[cfg_attr(feature = "ser", serde(tag = "table_type"))]
|
||||||
|
@ -116,7 +116,7 @@ impl Table<'_> {
|
||||||
/// |-----+-----+-----| <- ignores
|
/// |-----+-----+-----| <- ignores
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[cfg_attr(feature = "ser", serde(tag = "table_row_type"))]
|
#[cfg_attr(feature = "ser", serde(tag = "table_row_type"))]
|
||||||
|
@ -133,7 +133,7 @@ pub enum TableRow {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Table Cell Element
|
/// Table Cell Element
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[cfg_attr(feature = "ser", serde(tag = "table_cell_type"))]
|
#[cfg_attr(feature = "ser", serde(tag = "table_cell_type"))]
|
||||||
|
|
|
@ -11,7 +11,7 @@ use nom::{
|
||||||
/// Target Object
|
/// Target Object
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Target<'a> {
|
pub struct Target<'a> {
|
||||||
/// Target ID
|
/// Target ID
|
||||||
pub target: Cow<'a, str>,
|
pub target: Cow<'a, str>,
|
||||||
|
|
|
@ -100,7 +100,7 @@ mod chrono {
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[cfg_attr(feature = "ser", serde(rename_all = "kebab-case"))]
|
#[cfg_attr(feature = "ser", serde(rename_all = "kebab-case"))]
|
||||||
#[cfg_attr(feature = "ser", serde(tag = "timestamp_type"))]
|
#[cfg_attr(feature = "ser", serde(tag = "timestamp_type"))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub enum Timestamp<'a> {
|
pub enum Timestamp<'a> {
|
||||||
Active {
|
Active {
|
||||||
start: Datetime<'a>,
|
start: Datetime<'a>,
|
||||||
|
|
|
@ -23,7 +23,7 @@ use crate::{
|
||||||
/// Title Element
|
/// Title Element
|
||||||
#[cfg_attr(test, derive(PartialEq))]
|
#[cfg_attr(test, derive(PartialEq))]
|
||||||
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
#[cfg_attr(feature = "ser", derive(serde::Serialize))]
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Title<'a> {
|
pub struct Title<'a> {
|
||||||
/// Headline level, number of stars
|
/// Headline level, number of stars
|
||||||
pub level: usize,
|
pub level: usize,
|
||||||
|
|
Loading…
Reference in a new issue