about summary refs log tree commit diff
path: root/src/db.rs
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2018-04-15T19·31+0200
committerVincent Ambo <tazjin@gmail.com>2018-04-15T19·31+0200
commitce18cfa2d67ccf6ec560d59da1753930e86d169c (patch)
tree504f8eb63d615ac7d36de8f2778eade845f6e684 /src/db.rs
parentd9d1a3313f5cbceb5cb4878752fe0dc117bed3b0 (diff)
refactor: Add a message!-macro to reduce message boilerplate
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs30
1 files changed, 6 insertions, 24 deletions
diff --git a/src/db.rs b/src/db.rs
index ad1c148a7072..202f6c1609ca 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -35,10 +35,7 @@ impl Actor for DbExecutor {
 /// Message used to request a list of threads.
 /// TODO: This should support page numbers.
 pub struct ListThreads;
-
-impl Message for ListThreads {
-    type Result = Result<Vec<ThreadIndex>>;
-}
+message!(ListThreads, Result<Vec<ThreadIndex>>);
 
 impl Handler<ListThreads> for DbExecutor {
     type Result = <ListThreads as Message>::Result;
@@ -56,10 +53,7 @@ impl Handler<ListThreads> for DbExecutor {
 /// Message used to fetch a specific thread. Returns the thread and
 /// its posts.
 pub struct GetThread(pub i32);
-
-impl Message for GetThread {
-    type Result = Result<(Thread, Vec<Post>)>;
-}
+message!(GetThread, Result<(Thread, Vec<Post>)>);
 
 impl Handler<GetThread> for DbExecutor {
     type Result = <GetThread as Message>::Result;
@@ -82,10 +76,7 @@ pub struct CreateThread {
     pub new_thread: NewThread,
     pub post: String,
 }
-
-impl Message for CreateThread {
-    type Result = Result<Thread>;
-}
+message!(CreateThread, Result<Thread>);
 
 impl Handler<CreateThread> for DbExecutor {
     type Result = <CreateThread as Message>::Result;
@@ -121,10 +112,7 @@ impl Handler<CreateThread> for DbExecutor {
 
 /// Message used to create a new reply
 pub struct CreatePost(pub NewPost);
-
-impl Message for CreatePost {
-    type Result = Result<Post>;
-}
+message!(CreatePost, Result<Post>);
 
 impl Handler<CreatePost> for DbExecutor {
     type Result = <CreatePost as Message>::Result;
@@ -143,10 +131,7 @@ impl Handler<CreatePost> for DbExecutor {
 /// Message used to search for posts
 #[derive(Deserialize)]
 pub struct SearchPosts { pub query: String }
-
-impl Message for SearchPosts {
-    type Result = Result<Vec<SearchResult>>;
-}
+message!(SearchPosts, Result<Vec<SearchResult>>);
 
 /// Raw PostgreSQL query used to perform full-text search on posts
 /// with a supplied phrase. For now, the query language is hardcoded
@@ -182,10 +167,7 @@ impl Handler<SearchPosts> for DbExecutor {
 /// Message that triggers a refresh of the view used for full-text
 /// searching.
 pub struct RefreshSearchView;
-
-impl Message for RefreshSearchView {
-    type Result = Result<()>;
-}
+message!(RefreshSearchView, Result<()>);
 
 const REFRESH_QUERY: &'static str = "REFRESH MATERIALIZED VIEW search_index";