aboutsummaryrefslogtreecommitdiffstats
path: root/src/messages.rs
diff options
context:
space:
mode:
authorDirk Van Haerenborgh <vhdirk@gmail.com>2018-11-12 21:05:36 +0100
committerGitHub <noreply@github.com>2018-11-12 21:05:36 +0100
commitad70f33648245764c2d02bde14207f9b86bfe016 (patch)
treebef4b10c329d66fde11e4eea8b1300fd7cb2385a /src/messages.rs
parent9dad03a829708985a8ff9428c176decd1679ca51 (diff)
parentba03b994b3318c84923f4a9a23cfc4270a5ace75 (diff)
downloadmail-ad70f33648245764c2d02bde14207f9b86bfe016.tar.gz
Merge pull request #10 from eaon/master
Switch to more legible `where` syntax
Diffstat (limited to 'src/messages.rs')
-rw-r--r--src/messages.rs56
1 files changed, 37 insertions, 19 deletions
diff --git a/src/messages.rs b/src/messages.rs
index 34a9bb5..5977e42 100644
--- a/src/messages.rs
+++ b/src/messages.rs
@@ -29,16 +29,22 @@ impl Drop for MessagesPtr {
}
#[derive(Debug)]
-pub struct Messages<'o, Owner: MessagesOwner + 'o> {
+pub struct Messages<'o, O>
+where
+ O: MessagesOwner + 'o,
+{
pub(crate) handle: MessagesPtr,
- marker: Phantomcow<'o, Owner>,
+ marker: Phantomcow<'o, O>,
}
-impl<'o, Owner: MessagesOwner + 'o> Messages<'o, Owner> {
- pub(crate) fn from_ptr<O: Into<Phantomcow<'o, Owner>>>(
- ptr: *mut ffi::notmuch_messages_t,
- owner: O,
- ) -> Messages<'o, Owner> {
+impl<'o, O> Messages<'o, O>
+where
+ O: MessagesOwner + 'o,
+{
+ pub(crate) fn from_ptr<P>(ptr: *mut ffi::notmuch_messages_t, owner: P) -> Messages<'o, O>
+ where
+ P: Into<Phantomcow<'o, O>>,
+ {
Messages {
handle: MessagesPtr { ptr },
marker: owner.into(),
@@ -46,10 +52,13 @@ impl<'o, Owner: MessagesOwner + 'o> Messages<'o, Owner> {
}
}
-impl<'o, Owner: MessagesOwner + 'o> MessageOwner for Messages<'o, Owner> {}
-impl<'o, Owner: MessagesOwner + 'o> TagsOwner for Messages<'o, Owner> {}
+impl<'o, O> MessageOwner for Messages<'o, O> where O: MessagesOwner + 'o {}
+impl<'o, O> TagsOwner for Messages<'o, O> where O: MessagesOwner + 'o {}
-impl<'o, Owner: MessagesOwner + 'o> Messages<'o, Owner> {
+impl<'o, O> Messages<'o, O>
+where
+ O: MessagesOwner + 'o,
+{
/**
* Return a list of tags from all messages.
*
@@ -71,22 +80,31 @@ impl<'o, Owner: MessagesOwner + 'o> Messages<'o, Owner> {
}
}
-impl<'s, 'o: 's, Owner: MessagesOwner + 'o> StreamingIterator<'s, Message<'s, Self>>
- for Messages<'o, Owner>
+impl<'s, 'o: 's, O> StreamingIterator<'s, Message<'s, Self>> for Messages<'o, O>
+where
+ O: MessagesOwner + 'o,
{
fn next(&'s mut self) -> Option<Message<'s, Self>> {
<Self as StreamingIteratorExt<'s, Message<'s, Self>>>::next(Supercow::borrowed(self))
}
}
-pub trait MessagesExt<'o, Owner: MessagesOwner + 'o> {}
+pub trait MessagesExt<'o, O>
+where
+ O: MessagesOwner + 'o,
+{
+}
-impl<'o, Owner: MessagesOwner + 'o> MessagesExt<'o, Owner> for Messages<'o, Owner> {}
+impl<'o, O> MessagesExt<'o, O> for Messages<'o, O> where O: MessagesOwner + 'o {}
-impl<'s, 'o: 's, Owner: MessagesOwner + 'o> StreamingIteratorExt<'s, Message<'s, Self>>
- for Messages<'o, Owner>
+impl<'s, 'o: 's, O> StreamingIteratorExt<'s, Message<'s, Self>> for Messages<'o, O>
+where
+ O: MessagesOwner + 'o,
{
- fn next<S: Into<Supercow<'s, Messages<'o, Owner>>>>(messages: S) -> Option<Message<'s, Self>> {
+ fn next<S>(messages: S) -> Option<Message<'s, Self>>
+ where
+ S: Into<Supercow<'s, Messages<'o, O>>>,
+ {
let messagesref = messages.into();
let valid = unsafe { ffi::notmuch_messages_valid(messagesref.handle.ptr) };
@@ -104,5 +122,5 @@ impl<'s, 'o: 's, Owner: MessagesOwner + 'o> StreamingIteratorExt<'s, Message<'s,
}
}
-unsafe impl<'o, Owner: MessagesOwner + 'o> Send for Messages<'o, Owner> {}
-unsafe impl<'o, Owner: MessagesOwner + 'o> Sync for Messages<'o, Owner> {}
+unsafe impl<'o, O> Send for Messages<'o, O> where O: MessagesOwner + 'o {}
+unsafe impl<'o, O> Sync for Messages<'o, O> where O: MessagesOwner + 'o {}