@@ -7,9 +7,6 @@ use crate::Event;
77use actix_web:: dev:: HttpResponseBuilder ;
88use actix_web:: http:: { HeaderName , HeaderValue , StatusCode } ;
99use actix_web:: HttpResponse ;
10- use async_trait:: async_trait;
11- use futures:: future:: LocalBoxFuture ;
12- use futures:: FutureExt ;
1310use std:: str:: FromStr ;
1411
1512/// Wrapper for [`HttpResponseBuilder`] that implements [`StructuredSerializer`] and [`BinarySerializer`].
@@ -25,26 +22,26 @@ impl HttpResponseSerializer {
2522
2623impl BinarySerializer < HttpResponse > for HttpResponseSerializer {
2724 fn set_spec_version ( mut self , spec_version : SpecVersion ) -> Result < Self > {
28- self . builder . set_header (
25+ self . builder . insert_header ( (
2926 headers:: SPEC_VERSION_HEADER . clone ( ) ,
3027 str_to_header_value ! ( spec_version. as_str( ) ) ?,
31- ) ;
28+ ) ) ;
3229 Ok ( self )
3330 }
3431
3532 fn set_attribute ( mut self , name : & str , value : MessageAttributeValue ) -> Result < Self > {
36- self . builder . set_header (
33+ self . builder . insert_header ( (
3734 headers:: ATTRIBUTES_TO_HEADERS . get ( name) . unwrap ( ) . clone ( ) ,
3835 str_to_header_value ! ( value. to_string( ) . as_str( ) ) ?,
39- ) ;
36+ ) ) ;
4037 Ok ( self )
4138 }
4239
4340 fn set_extension ( mut self , name : & str , value : MessageAttributeValue ) -> Result < Self > {
44- self . builder . set_header (
41+ self . builder . insert_header ( (
4542 attribute_name_to_header ! ( name) ?,
4643 str_to_header_value ! ( value. to_string( ) . as_str( ) ) ?,
47- ) ;
44+ ) ) ;
4845 Ok ( self )
4946 }
5047
@@ -61,16 +58,16 @@ impl StructuredSerializer<HttpResponse> for HttpResponseSerializer {
6158 fn set_structured_event ( mut self , bytes : Vec < u8 > ) -> Result < HttpResponse > {
6259 Ok ( self
6360 . builder
64- . set_header (
61+ . insert_header ( (
6562 actix_web:: http:: header:: CONTENT_TYPE ,
6663 headers:: CLOUDEVENTS_JSON_HEADER . clone ( ) ,
67- )
64+ ) )
6865 . body ( bytes) )
6966 }
7067}
7168
7269/// Method to fill an [`HttpResponseBuilder`] with an [`Event`].
73- pub async fn event_to_response (
70+ pub fn event_to_response (
7471 event : Event ,
7572 response : HttpResponseBuilder ,
7673) -> std:: result:: Result < HttpResponse , actix_web:: error:: Error > {
@@ -80,33 +77,22 @@ pub async fn event_to_response(
8077
8178/// So that an actix-web handler may return an Event
8279impl actix_web:: Responder for Event {
83- type Error = actix_web:: Error ;
84- type Future = LocalBoxFuture < ' static , std:: result:: Result < HttpResponse , Self :: Error > > ;
85-
86- fn respond_to ( self , _: & actix_web:: HttpRequest ) -> Self :: Future {
87- async { HttpResponse :: build ( StatusCode :: OK ) . event ( self ) . await } . boxed_local ( )
80+ fn respond_to ( self , _: & actix_web:: HttpRequest ) -> HttpResponse {
81+ HttpResponse :: build ( StatusCode :: OK ) . event ( self ) . unwrap ( )
8882 }
8983}
9084
9185/// Extension Trait for [`HttpResponseBuilder`] which acts as a wrapper for the function [`event_to_response()`].
9286///
9387/// This trait is sealed and cannot be implemented for types outside of this crate.
94- #[ async_trait( ?Send ) ]
9588pub trait HttpResponseBuilderExt : private:: Sealed {
9689 /// Fill this [`HttpResponseBuilder`] with an [`Event`].
97- async fn event (
98- self ,
99- event : Event ,
100- ) -> std:: result:: Result < HttpResponse , actix_web:: error:: Error > ;
90+ fn event ( self , event : Event ) -> std:: result:: Result < HttpResponse , actix_web:: error:: Error > ;
10191}
10292
103- #[ async_trait( ?Send ) ]
10493impl HttpResponseBuilderExt for HttpResponseBuilder {
105- async fn event (
106- self ,
107- event : Event ,
108- ) -> std:: result:: Result < HttpResponse , actix_web:: error:: Error > {
109- event_to_response ( event, self ) . await
94+ fn event ( self , event : Event ) -> std:: result:: Result < HttpResponse , actix_web:: error:: Error > {
95+ event_to_response ( event, self )
11096 }
11197}
11298
@@ -138,7 +124,6 @@ mod tests {
138124
139125 let resp = HttpResponseBuilder :: new ( StatusCode :: OK )
140126 . event ( input)
141- . await
142127 . unwrap ( ) ;
143128
144129 assert_eq ! (
@@ -182,7 +167,6 @@ mod tests {
182167
183168 let mut resp = HttpResponseBuilder :: new ( StatusCode :: OK )
184169 . event ( input)
185- . await
186170 . unwrap ( ) ;
187171
188172 assert_eq ! (
0 commit comments