Remove PartialEq from Object.
Some checks failed
rustfmt Build rustfmt has succeeded
clippy Build clippy has failed
rust-foreign-document-test Build rust-foreign-document-test has succeeded
rust-test Build rust-test has succeeded
rust-build Build rust-build has succeeded

This commit is contained in:
Tom Alexander
2023-10-31 16:25:52 -04:00
parent 10aa0956ee
commit f5699ce830
6 changed files with 136 additions and 97 deletions

View File

@@ -9,8 +9,7 @@ use super::util::to_lowercase;
use super::GetStandardProperties;
use super::StandardProperties;
// TODO: Why did we make Object implement PartialEq again? Was it just for tests?
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub enum Object<'s> {
Bold(Bold<'s>),
Italic(Italic<'s>),
@@ -41,48 +40,48 @@ pub enum Object<'s> {
Timestamp(Timestamp<'s>),
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Bold<'s> {
pub source: &'s str,
pub children: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Italic<'s> {
pub source: &'s str,
pub children: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Underline<'s> {
pub source: &'s str,
pub children: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct StrikeThrough<'s> {
pub source: &'s str,
pub children: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Code<'s> {
pub source: &'s str,
pub contents: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Verbatim<'s> {
pub source: &'s str,
pub contents: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct PlainText<'s> {
pub source: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct RegularLink<'s> {
pub source: &'s str,
pub link_type: LinkType<'s>,
@@ -105,21 +104,21 @@ pub struct RegularLink<'s> {
pub application: Option<Cow<'s, str>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct RadioTarget<'s> {
pub source: &'s str,
pub value: &'s str,
pub children: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct RadioLink<'s> {
pub source: &'s str,
pub path: &'s str,
pub children: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct PlainLink<'s> {
pub source: &'s str,
pub link_type: LinkType<'s>,
@@ -129,7 +128,7 @@ pub struct PlainLink<'s> {
pub application: Option<&'s str>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct AngleLink<'s> {
pub source: &'s str,
pub link_type: LinkType<'s>,
@@ -147,7 +146,7 @@ pub struct AngleLink<'s> {
pub application: Option<&'s str>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct OrgMacro<'s> {
pub source: &'s str,
@@ -164,7 +163,7 @@ pub struct OrgMacro<'s> {
pub value: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Entity<'s> {
pub source: &'s str,
pub name: &'s str,
@@ -177,27 +176,27 @@ pub struct Entity<'s> {
pub use_brackets: bool,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct LatexFragment<'s> {
pub source: &'s str,
pub value: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct ExportSnippet<'s> {
pub source: &'s str,
pub backend: &'s str,
pub contents: Option<&'s str>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct FootnoteReference<'s> {
pub source: &'s str,
pub label: Option<&'s str>,
pub definition: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Citation<'s> {
pub source: &'s str,
pub style: Option<&'s str>,
@@ -206,7 +205,7 @@ pub struct Citation<'s> {
pub children: Vec<CitationReference<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct CitationReference<'s> {
pub source: &'s str,
pub key: &'s str,
@@ -214,7 +213,7 @@ pub struct CitationReference<'s> {
pub suffix: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct InlineBabelCall<'s> {
pub source: &'s str,
pub value: &'s str,
@@ -224,7 +223,7 @@ pub struct InlineBabelCall<'s> {
pub end_header: Option<&'s str>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct InlineSourceBlock<'s> {
pub source: &'s str,
pub language: &'s str,
@@ -232,31 +231,31 @@ pub struct InlineSourceBlock<'s> {
pub value: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct LineBreak<'s> {
pub source: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Target<'s> {
pub source: &'s str,
pub value: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct StatisticsCookie<'s> {
pub source: &'s str,
pub value: &'s str,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Subscript<'s> {
pub source: &'s str,
pub use_brackets: bool,
pub children: Vec<Object<'s>>,
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub struct Superscript<'s> {
pub source: &'s str,
pub use_brackets: bool,
@@ -264,7 +263,7 @@ pub struct Superscript<'s> {
}
// TODO: Perhaps there is an optimization of converting to unix time we can do to shrink this struct. (ref: clippy::large_enum_variant on Element)
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct Timestamp<'s> {
pub source: &'s str,
pub timestamp_type: TimestampType,
@@ -277,7 +276,7 @@ pub struct Timestamp<'s> {
pub warning_delay: Option<WarningDelay>,
}
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub enum TimestampType {
Diary,
Active,
@@ -286,7 +285,7 @@ pub enum TimestampType {
InactiveRange,
}
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub enum TimestampRangeType {
None,
DateRange,
@@ -299,19 +298,19 @@ pub type DayOfMonthInner = u8;
pub type HourInner = u8;
pub type MinuteInner = u8;
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct Year(YearInner);
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct Month(MonthInner);
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct DayOfMonth(DayOfMonthInner);
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct Hour(HourInner);
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct Minute(MinuteInner);
impl Year {
@@ -386,7 +385,7 @@ impl Minute {
}
}
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct Date<'s> {
year: Year,
month: Month,
@@ -444,7 +443,7 @@ impl<'s> Date<'s> {
}
}
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct Time<'s> {
hour: Hour,
minute: Minute,
@@ -478,20 +477,20 @@ impl<'s> Time<'s> {
}
}
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub enum RepeaterType {
Cumulative,
CatchUp,
Restart,
}
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub enum WarningDelayType {
All,
First,
}
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub enum TimeUnit {
Hour,
Day,
@@ -502,14 +501,14 @@ pub enum TimeUnit {
pub type RepeaterWarningDelayValueType = u16;
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct Repeater {
pub repeater_type: RepeaterType,
pub value: RepeaterWarningDelayValueType,
pub unit: TimeUnit,
}
#[derive(Debug, PartialEq, Clone)]
#[derive(Debug, Clone)]
pub struct WarningDelay {
pub warning_delay_type: WarningDelayType,
pub value: RepeaterWarningDelayValueType,
@@ -718,7 +717,7 @@ impl<'s> Timestamp<'s> {
}
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub enum LinkType<'s> {
File,
Protocol(Cow<'s, str>),
@@ -787,7 +786,7 @@ impl<'s> OrgMacro<'s> {
}
}
#[derive(Debug, PartialEq)]
#[derive(Debug)]
pub enum FootnoteReferenceType {
Standard,
Inline,