Skip to content

Commit 72136ef

Browse files
committed
rust: Hide macro preamble from user code
Signed-off-by: Lann Martin <[email protected]>
1 parent fd3a9a7 commit 72136ef

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

sdk/rust/macro/src/lib.rs

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ pub fn redis_component(_attr: TokenStream, item: TokenStream) -> TokenStream {
1313
quote!(
1414
#func
1515
mod __spin_redis {
16-
#preamble
17-
impl self::exports::fermyon::spin::inbound_redis::Guest for Spin {
18-
fn handle_message(msg: self::exports::fermyon::spin::inbound_redis::Payload) -> Result<(), self::fermyon::spin::redis_types::Error> {
16+
mod preamble {
17+
#preamble
18+
}
19+
impl self::preamble::exports::fermyon::spin::inbound_redis::Guest for preamble::Spin {
20+
fn handle_message(msg: self::preamble::exports::fermyon::spin::inbound_redis::Payload) -> Result<(), self::preamble::fermyon::spin::redis_types::Error> {
1921
match super::#func_name(msg.try_into().expect("cannot convert from Spin Redis payload")) {
2022
Ok(()) => Ok(()),
2123
Err(e) => {
2224
eprintln!("{}", e);
23-
Err(self::fermyon::spin::redis_types::Error::Error)
25+
Err(self::preamble::fermyon::spin::redis_types::Error::Error)
2426
},
2527
}
2628
}
@@ -96,9 +98,11 @@ pub fn http_component(_attr: TokenStream, item: TokenStream) -> TokenStream {
9698
quote!(
9799
#func
98100
mod __spin_wasi_http {
99-
#preamble
100-
impl self::exports::wasi::http::incoming_handler::Guest for Spin {
101-
fn handle(request: wasi::http::types::IncomingRequest, response_out: self::wasi::http::types::ResponseOutparam) {
101+
mod preamble {
102+
#preamble
103+
}
104+
impl self::preamble::exports::wasi::http::incoming_handler::Guest for self::preamble::Spin {
105+
fn handle(request: self::preamble::wasi::http::types::IncomingRequest, response_out: self::preamble::wasi::http::types::ResponseOutparam) {
102106
let request: ::spin_sdk::http::IncomingRequest = ::std::convert::Into::into(request);
103107
let response_out: ::spin_sdk::http::ResponseOutparam = ::std::convert::Into::into(response_out);
104108
::spin_sdk::http::run(async move {
@@ -119,20 +123,20 @@ pub fn http_component(_attr: TokenStream, item: TokenStream) -> TokenStream {
119123
}
120124
}
121125

122-
impl From<self::wasi::http::types::IncomingRequest> for ::spin_sdk::http::IncomingRequest {
123-
fn from(req: self::wasi::http::types::IncomingRequest) -> Self {
126+
impl From<self::preamble::wasi::http::types::IncomingRequest> for ::spin_sdk::http::IncomingRequest {
127+
fn from(req: self::preamble::wasi::http::types::IncomingRequest) -> Self {
124128
unsafe { Self::from_handle(req.into_handle()) }
125129
}
126130
}
127131

128-
impl From<::spin_sdk::http::OutgoingResponse> for self::wasi::http::types::OutgoingResponse {
132+
impl From<::spin_sdk::http::OutgoingResponse> for self::preamble::wasi::http::types::OutgoingResponse {
129133
fn from(resp: ::spin_sdk::http::OutgoingResponse) -> Self {
130134
unsafe { Self::from_handle(resp.into_handle()) }
131135
}
132136
}
133137

134-
impl From<self::wasi::http::types::ResponseOutparam> for ::spin_sdk::http::ResponseOutparam {
135-
fn from(resp: self::wasi::http::types::ResponseOutparam) -> Self {
138+
impl From<self::preamble::wasi::http::types::ResponseOutparam> for ::spin_sdk::http::ResponseOutparam {
139+
fn from(resp: self::preamble::wasi::http::types::ResponseOutparam) -> Self {
136140
unsafe { Self::from_handle(resp.into_handle()) }
137141
}
138142
}
@@ -167,6 +171,6 @@ fn preamble(export: Export) -> proc_macro2::TokenStream {
167171
#export_decl
168172
}
169173
});
170-
struct Spin;
174+
pub struct Spin;
171175
}
172176
}

0 commit comments

Comments
 (0)