Skip to content

Commit ba750b4

Browse files
committed
Fixed tests.
1 parent de82b6e commit ba750b4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+18918
-5761
lines changed

src/lib.rs

+59-46
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,13 @@ pub struct Headers<'x> {
449449
serde(skip_serializing_if = "HashMap::is_empty")
450450
)]
451451
#[cfg_attr(feature = "serde_support", serde(default))]
452-
pub values: HashMap<HeaderName<'x>, HeaderValue<'x>>,
452+
pub values: HashMap<HeaderName, HeaderValue<'x>>,
453+
#[cfg_attr(
454+
feature = "serde_support",
455+
serde(skip_serializing_if = "HashMap::is_empty")
456+
)]
457+
#[cfg_attr(feature = "serde_support", serde(default))]
458+
pub other_values: HashMap<Cow<'x, str>, HeaderValue<'x>>,
453459
#[cfg_attr(
454460
feature = "serde_support",
455461
serde(skip_serializing_if = "Vec::is_empty")
@@ -464,7 +470,7 @@ impl<'x> Headers<'x> {
464470
}
465471

466472
pub fn is_empty(&self) -> bool {
467-
self.values.is_empty() && self.offsets.is_empty()
473+
self.values.is_empty() && self.other_values.is_empty() && self.offsets.is_empty()
468474
}
469475

470476
pub fn clear(&mut self) {
@@ -477,55 +483,62 @@ impl<'x> Headers<'x> {
477483
#[derive(Debug, PartialEq)]
478484
#[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
479485
pub struct HeaderOffset<'x> {
480-
pub name: HeaderName<'x>,
486+
pub name: HeaderOffsetName<'x>,
481487
pub start: usize,
482488
pub end: usize,
483489
}
484490

491+
#[derive(Debug, PartialEq)]
492+
#[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
493+
pub enum HeaderOffsetName<'x> {
494+
Rfc(HeaderName),
495+
Other(Cow<'x, str>),
496+
}
497+
485498
/// A header field
486-
#[derive(Debug, PartialEq, Eq, Hash, Clone)]
499+
#[repr(u8)]
500+
#[derive(Debug, PartialEq, Eq, Hash, Clone, Copy)]
487501
#[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
488502
#[cfg_attr(feature = "serde_support", serde(rename_all = "snake_case"))]
489-
pub enum HeaderName<'x> {
490-
Subject,
491-
From,
492-
To,
493-
Cc,
494-
Date,
495-
Bcc,
496-
ReplyTo,
497-
Sender,
498-
Comments,
499-
InReplyTo,
500-
Keywords,
501-
Received,
502-
MessageId,
503-
References,
504-
ReturnPath,
505-
MimeVersion,
506-
ContentDescription,
507-
ContentId,
508-
ContentLanguage,
509-
ContentLocation,
510-
ContentTransferEncoding,
511-
ContentType,
512-
ContentDisposition,
513-
ResentTo,
514-
ResentFrom,
515-
ResentBcc,
516-
ResentCc,
517-
ResentSender,
518-
ResentDate,
519-
ResentMessageId,
520-
ListArchive,
521-
ListHelp,
522-
ListId,
523-
ListOwner,
524-
ListPost,
525-
ListSubscribe,
526-
ListUnsubscribe,
527-
Other(Cow<'x, str>),
528-
Invalid,
503+
pub enum HeaderName {
504+
Subject = 0,
505+
From = 1,
506+
To = 2,
507+
Cc = 3,
508+
Date = 4,
509+
Bcc = 5,
510+
ReplyTo = 6,
511+
Sender = 7,
512+
Comments = 8,
513+
InReplyTo = 9,
514+
Keywords = 10,
515+
Received = 11,
516+
MessageId = 12,
517+
References = 13,
518+
ReturnPath = 14,
519+
MimeVersion = 15,
520+
ContentDescription = 16,
521+
ContentId = 17,
522+
ContentLanguage = 18,
523+
ContentLocation = 19,
524+
ContentTransferEncoding = 20,
525+
ContentType = 21,
526+
ContentDisposition = 22,
527+
ResentTo = 23,
528+
ResentFrom = 24,
529+
ResentBcc = 25,
530+
ResentCc = 26,
531+
ResentSender = 27,
532+
ResentDate = 28,
533+
ResentMessageId = 29,
534+
ListArchive = 30,
535+
ListHelp = 31,
536+
ListId = 32,
537+
ListOwner = 33,
538+
ListPost = 34,
539+
ListSubscribe = 35,
540+
ListUnsubscribe = 36,
541+
Other = 37,
529542
}
530543

531544
/// A parsed header value.
@@ -907,8 +920,8 @@ impl<'x> Message<'x> {
907920
/// Returns a non-standard header field
908921
pub fn get_other(&self, name: &'x str) -> &HeaderValue<'x> {
909922
self.headers
910-
.values
911-
.get(&HeaderName::Other(name.into()))
923+
.other_values
924+
.get(&Cow::from(name))
912925
.unwrap_or(&HeaderValue::Empty)
913926
}
914927

src/parsers/fields/address.rs

-1
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,6 @@ mod tests {
922922
];
923923

924924
for input in inputs {
925-
println!("Testiong {}", input.0);
926925
let str = input.0.to_string();
927926
let result = parse_address(&mut MessageStream::new(str.as_bytes()));
928927
let expected: HeaderValue = serde_yaml::from_str(input.1).unwrap_or(HeaderValue::Empty);

0 commit comments

Comments
 (0)