Forwarded from RustPlayBot
This is RustPlayBot 0.0.9 ,Rust versions:
Stable:rustc 1.21.0 (3b72af97e 2017-10-09),
Beta:rustc 1.22.0-beta.1 (e694dd37b 2017-10-12),
Nightly:rustc 1.22.0-nightly (4750c1ec0 2017-10-19)
Stable:rustc 1.21.0 (3b72af97e 2017-10-09),
Beta:rustc 1.22.0-beta.1 (e694dd37b 2017-10-12),
Nightly:rustc 1.22.0-nightly (4750c1ec0 2017-10-19)
#webdev #backend #Rust #wtf duangsuse 被自己坑了好久才搞出一个代ACAO头的响应器... 原因竟然是Rust没自动为StrCORS实现AsRef<[u8]>, AsRef<[u8]>也没有Derive宏, duangsuse自己复制粘贴std的代码时忘记要把self.as_bytes() 改成self.0.as_bytes()了... 🙈
struct StrCORS (String);
impl<'r> Responder<'r> for StrCORS {
fn respond_to(self, _: &Request) -> Result<Response<'r>, Status> {
Response::build()
.raw_header("Content-Type", "text/plain; charset=utf-8")
.raw_header("Access-Control-Allow-Origin", "*")
.sized_body(Cursor::new(self.0))
.ok()
}
}
impl AsRef<[u8]> for StrCORS {
#[inline]
fn as_ref(&self) -> &[u8] {
self.0.as_bytes()
}
}
impl StrCORS{
fn new_with_string(string: String) -> StrCORS { StrCORS(string) }
}
duangsuse::Echo
#webdev #backend #frontend #扎心 原来duangsuse的fortuneAPI不如直接拿js从GH取然后js操作...
🌚duangsuse可能还不知道有304 Not Modified和自动缓存这种操作...