@@ -2,7 +2,7 @@ use std::marker::PhantomData;
22
33use async_trait:: async_trait;
44use eventually:: aggregate:: Aggregate ;
5- use eventually:: serde:: { Deserializer , Serde , Serializer } ;
5+ use eventually:: serde:: Serde ;
66use eventually:: version:: Version ;
77use eventually:: { aggregate, version} ;
88use sqlx:: { PgPool , Postgres , Row } ;
1515 OutT : From < T > ,
1616 OutEvt : From < T :: Event > ,
1717 TSerde : Serde < OutT > ,
18- EvtSerde : Serializer < OutEvt > ,
18+ EvtSerde : Serde < OutEvt > ,
1919{
2020 pool : PgPool ,
2121 aggregate_serde : TSerde ,
3232 OutT : From < T > ,
3333 OutEvt : From < T :: Event > ,
3434 TSerde : Serde < OutT > ,
35- EvtSerde : Serializer < OutEvt > ,
35+ EvtSerde : Serde < OutEvt > ,
3636{
3737 pub async fn new (
3838 pool : PgPool ,
@@ -100,7 +100,7 @@ where
100100 OutT : From < T > + Send + Sync ,
101101 OutEvt : From < T :: Event > ,
102102 TSerde : Serde < OutT > + Send + Sync ,
103- EvtSerde : Serializer < OutEvt > ,
103+ EvtSerde : Serde < OutEvt > ,
104104{
105105 async fn save_aggregate_state (
106106 & self ,
@@ -138,7 +138,7 @@ where
138138}
139139
140140#[ async_trait]
141- impl < T , OutT , OutEvt , TSerde , EvtSerde > aggregate:: repository :: Getter < T >
141+ impl < T , OutT , OutEvt , TSerde , EvtSerde > aggregate:: Repository < T >
142142 for Repository < T , OutT , OutEvt , TSerde , EvtSerde >
143143where
144144 T : Aggregate + TryFrom < OutT > + Send + Sync ,
@@ -147,15 +147,16 @@ where
147147 OutT : From < T > + Send + Sync ,
148148 OutEvt : From < T :: Event > + Send + Sync ,
149149 TSerde : Serde < OutT > + Send + Sync ,
150- <TSerde as Deserializer < OutT > >:: Error : std:: error:: Error + Send + Sync + ' static ,
151- EvtSerde : Serializer < OutEvt > + Send + Sync ,
150+ <TSerde as Serde < OutT > >:: Error : std:: error:: Error + Send + Sync + ' static ,
151+ EvtSerde : Serde < OutEvt > + Send + Sync ,
152152{
153- type Error = GetError ;
153+ type GetError = GetError ;
154+ type SaveError = SaveError ;
154155
155156 async fn get (
156157 & self ,
157158 id : & T :: Id ,
158- ) -> Result < aggregate:: Root < T > , aggregate:: repository:: GetError < Self :: Error > > {
159+ ) -> Result < aggregate:: Root < T > , aggregate:: repository:: GetError < Self :: GetError > > {
159160 let aggregate_id = id. to_string ( ) ;
160161
161162 let row = sqlx:: query (
@@ -188,24 +189,8 @@ where
188189 aggregate,
189190 ) )
190191 }
191- }
192-
193- #[ async_trait]
194- impl < T , OutT , OutEvt , TSerde , EvtSerde > aggregate:: repository:: Saver < T >
195- for Repository < T , OutT , OutEvt , TSerde , EvtSerde >
196- where
197- T : Aggregate + TryFrom < OutT > + Send + Sync ,
198- <T as Aggregate >:: Id : ToString ,
199- <T as TryFrom < OutT > >:: Error : std:: error:: Error + Send + Sync + ' static ,
200- OutT : From < T > + Send + Sync ,
201- OutEvt : From < T :: Event > + Send + Sync ,
202- TSerde : Serde < OutT > + Send + Sync ,
203- <TSerde as Deserializer < OutT > >:: Error : std:: error:: Error + Send + Sync + ' static ,
204- EvtSerde : Serializer < OutEvt > + Send + Sync ,
205- {
206- type Error = SaveError ;
207192
208- async fn save ( & self , root : & mut aggregate:: Root < T > ) -> Result < ( ) , Self :: Error > {
193+ async fn save ( & self , root : & mut aggregate:: Root < T > ) -> Result < ( ) , Self :: SaveError > {
209194 let events_to_commit = root. take_uncommitted_events ( ) ;
210195
211196 if events_to_commit. is_empty ( ) {
0 commit comments