fix: correct lifetimes and types for append
This commit is contained in:
parent
e6341ccfc0
commit
b7bc842979
2 changed files with 11 additions and 15 deletions
|
|
@ -89,13 +89,13 @@ pub struct AppendCmd<'a, T: Read + Write> {
|
||||||
session: &'a mut Session<T>,
|
session: &'a mut Session<T>,
|
||||||
content: &'a [u8],
|
content: &'a [u8],
|
||||||
mailbox: &'a str,
|
mailbox: &'a str,
|
||||||
flags: Vec<&'a Flag<'a>>,
|
flags: Vec<Flag<'a>>,
|
||||||
date: Option<DateTime<FixedOffset>>,
|
date: Option<DateTime<FixedOffset>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, T: Read + Write> AppendCmd<'a, T> {
|
impl<'a, T: Read + Write> AppendCmd<'a, T> {
|
||||||
/// Append a flag
|
/// Append a flag
|
||||||
pub fn flag(&mut self, flag: &'a Flag<'a>) -> &mut Self {
|
pub fn flag(&mut self, flag: Flag<'a>) -> &mut Self {
|
||||||
self.flags.push(flag);
|
self.flags.push(flag);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
@ -108,11 +108,12 @@ impl<'a, T: Read + Write> AppendCmd<'a, T> {
|
||||||
|
|
||||||
/// Run command when set up
|
/// Run command when set up
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn run(&self) -> Result<()> {
|
pub fn run(&mut self) -> Result<()> {
|
||||||
let flagstr = self
|
let flagstr = self
|
||||||
.flags
|
.flags
|
||||||
|
.clone()
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter(|f| **f != Flag::Recent)
|
.filter(|f| *f != Flag::Recent)
|
||||||
.map(|f| f.to_string())
|
.map(|f| f.to_string())
|
||||||
.collect::<Vec<String>>()
|
.collect::<Vec<String>>()
|
||||||
.join(" ");
|
.join(" ");
|
||||||
|
|
@ -1157,15 +1158,11 @@ impl<T: Read + Write> Session<T> {
|
||||||
/// > If a date-time is specified, the internal date SHOULD be set in
|
/// > If a date-time is specified, the internal date SHOULD be set in
|
||||||
/// > the resulting message; otherwise, the internal date of the
|
/// > the resulting message; otherwise, the internal date of the
|
||||||
/// > resulting message is set to the current date and time by default.
|
/// > resulting message is set to the current date and time by default.
|
||||||
pub fn append<'a, S: AsRef<str>, B: AsRef<[u8]>>(
|
pub fn append<'a>(&'a mut self, mailbox: &'a str, content: &'a [u8]) -> AppendCmd<'a, T> {
|
||||||
&mut self,
|
|
||||||
mailbox: S,
|
|
||||||
content: B,
|
|
||||||
) -> AppendCmd<'a, T> {
|
|
||||||
AppendCmd {
|
AppendCmd {
|
||||||
session: self,
|
session: self,
|
||||||
content: content.as_ref(),
|
content,
|
||||||
mailbox: mailbox.as_ref(),
|
mailbox,
|
||||||
flags: Vec::new(),
|
flags: Vec::new(),
|
||||||
date: None,
|
date: None,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ fn append() {
|
||||||
let mbox = "INBOX";
|
let mbox = "INBOX";
|
||||||
c.select(mbox).unwrap();
|
c.select(mbox).unwrap();
|
||||||
//append
|
//append
|
||||||
c.append(mbox, e.message_to_string().unwrap())
|
c.append(mbox, e.message_to_string().unwrap().as_bytes())
|
||||||
.run()
|
.run()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
|
@ -303,7 +303,7 @@ fn append_with_flags() {
|
||||||
c.select(mbox).unwrap();
|
c.select(mbox).unwrap();
|
||||||
//append
|
//append
|
||||||
let flags: &[Flag] = &[Flag::Seen, Flag::Flagged];
|
let flags: &[Flag] = &[Flag::Seen, Flag::Flagged];
|
||||||
c.append(mbox, e.message_to_string().unwrap())
|
c.append(mbox, e.message_to_string().unwrap().as_bytes())
|
||||||
.flag(Flag::Seen)
|
.flag(Flag::Seen)
|
||||||
.flag(Flag::Flagged)
|
.flag(Flag::Flagged)
|
||||||
.run()
|
.run()
|
||||||
|
|
@ -359,11 +359,10 @@ fn append_with_flags_and_date() {
|
||||||
let mbox = "INBOX";
|
let mbox = "INBOX";
|
||||||
c.select(mbox).unwrap();
|
c.select(mbox).unwrap();
|
||||||
// append
|
// append
|
||||||
let flags: &[Flag] = &[Flag::Seen, Flag::Flagged];
|
|
||||||
let date = FixedOffset::east(8 * 3600)
|
let date = FixedOffset::east(8 * 3600)
|
||||||
.ymd(2020, 12, 13)
|
.ymd(2020, 12, 13)
|
||||||
.and_hms(13, 36, 36);
|
.and_hms(13, 36, 36);
|
||||||
c.append(mbox, e.message_to_string().unwrap())
|
c.append(mbox, e.message_to_string().unwrap().as_bytes())
|
||||||
.flag(Flag::Seen)
|
.flag(Flag::Seen)
|
||||||
.flag(Flag::Flagged)
|
.flag(Flag::Flagged)
|
||||||
.internal_date(date)
|
.internal_date(date)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue