mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-01 02:05:30 +00:00
ws: update simd-json to 0.10.3
This commit is contained in:
parent
8734855c49
commit
fca6cc9fbd
6 changed files with 145 additions and 60 deletions
|
|
@ -202,39 +202,50 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_deserialize_20_bytes() {
|
||||
let mut input = r#""aaaabbbbccccddddeeee""#.to_string();
|
||||
unsafe {
|
||||
let mut input = r#""aaaabbbbccccddddeeee""#.to_string();
|
||||
|
||||
let expected = info_hash_from_bytes(b"aaaabbbbccccddddeeee");
|
||||
let observed: InfoHash = ::simd_json::serde::from_str(&mut input).unwrap();
|
||||
let expected = info_hash_from_bytes(b"aaaabbbbccccddddeeee");
|
||||
let observed: InfoHash = ::simd_json::serde::from_str(&mut input).unwrap();
|
||||
|
||||
assert_eq!(observed, expected);
|
||||
assert_eq!(observed, expected);
|
||||
}
|
||||
|
||||
let mut input = r#""aaaabbbbccccddddeee""#.to_string();
|
||||
let res_info_hash: Result<InfoHash, _> = ::simd_json::serde::from_str(&mut input);
|
||||
unsafe {
|
||||
let mut input = r#""aaaabbbbccccddddeee""#.to_string();
|
||||
let res_info_hash: Result<InfoHash, _> = ::simd_json::serde::from_str(&mut input);
|
||||
|
||||
assert!(res_info_hash.is_err());
|
||||
assert!(res_info_hash.is_err());
|
||||
}
|
||||
|
||||
let mut input = r#""aaaabbbbccccddddeee𝕊""#.to_string();
|
||||
let res_info_hash: Result<InfoHash, _> = ::simd_json::serde::from_str(&mut input);
|
||||
unsafe {
|
||||
let mut input = r#""aaaabbbbccccddddeee𝕊""#.to_string();
|
||||
let res_info_hash: Result<InfoHash, _> = ::simd_json::serde::from_str(&mut input);
|
||||
|
||||
assert!(res_info_hash.is_err());
|
||||
assert!(res_info_hash.is_err());
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_serde_20_bytes() {
|
||||
let info_hash = info_hash_from_bytes(b"aaaabbbbccccddddeeee");
|
||||
|
||||
let mut out = ::simd_json::serde::to_string(&info_hash).unwrap();
|
||||
let info_hash_2 = ::simd_json::serde::from_str(&mut out).unwrap();
|
||||
let info_hash_2 = unsafe {
|
||||
let mut out = ::simd_json::serde::to_string(&info_hash).unwrap();
|
||||
|
||||
::simd_json::serde::from_str(&mut out).unwrap()
|
||||
};
|
||||
|
||||
assert_eq!(info_hash, info_hash_2);
|
||||
}
|
||||
|
||||
#[quickcheck]
|
||||
fn quickcheck_serde_20_bytes(info_hash: InfoHash) -> bool {
|
||||
let mut out = ::simd_json::serde::to_string(&info_hash).unwrap();
|
||||
let info_hash_2 = ::simd_json::serde::from_str(&mut out).unwrap();
|
||||
unsafe {
|
||||
let mut out = ::simd_json::serde::to_string(&info_hash).unwrap();
|
||||
let info_hash_2 = ::simd_json::serde::from_str(&mut out).unwrap();
|
||||
|
||||
info_hash == info_hash_2
|
||||
info_hash == info_hash_2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -262,12 +262,6 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_deserialize_info_hashes_vec() {
|
||||
let mut input: String = r#"{
|
||||
"action": "scrape",
|
||||
"info_hash": ["aaaabbbbccccddddeeee", "aaaabbbbccccddddeeee"]
|
||||
}"#
|
||||
.into();
|
||||
|
||||
let info_hashes = ScrapeRequestInfoHashes::Multiple(vec![
|
||||
info_hash_from_bytes(b"aaaabbbbccccddddeeee"),
|
||||
info_hash_from_bytes(b"aaaabbbbccccddddeeee"),
|
||||
|
|
@ -278,19 +272,21 @@ mod tests {
|
|||
info_hashes: Some(info_hashes),
|
||||
};
|
||||
|
||||
let observed: ScrapeRequest = ::simd_json::serde::from_str(&mut input).unwrap();
|
||||
let observed: ScrapeRequest = unsafe {
|
||||
let mut input: String = r#"{
|
||||
"action": "scrape",
|
||||
"info_hash": ["aaaabbbbccccddddeeee", "aaaabbbbccccddddeeee"]
|
||||
}"#
|
||||
.into();
|
||||
|
||||
::simd_json::serde::from_str(&mut input).unwrap()
|
||||
};
|
||||
|
||||
assert_eq!(expected, observed);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_deserialize_info_hashes_str() {
|
||||
let mut input: String = r#"{
|
||||
"action": "scrape",
|
||||
"info_hash": "aaaabbbbccccddddeeee"
|
||||
}"#
|
||||
.into();
|
||||
|
||||
let info_hashes =
|
||||
ScrapeRequestInfoHashes::Single(info_hash_from_bytes(b"aaaabbbbccccddddeeee"));
|
||||
|
||||
|
|
@ -299,54 +295,65 @@ mod tests {
|
|||
info_hashes: Some(info_hashes),
|
||||
};
|
||||
|
||||
let observed: ScrapeRequest = ::simd_json::serde::from_str(&mut input).unwrap();
|
||||
let observed: ScrapeRequest = unsafe {
|
||||
let mut input: String = r#"{
|
||||
"action": "scrape",
|
||||
"info_hash": "aaaabbbbccccddddeeee"
|
||||
}"#
|
||||
.into();
|
||||
|
||||
::simd_json::serde::from_str(&mut input).unwrap()
|
||||
};
|
||||
|
||||
assert_eq!(expected, observed);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_deserialize_info_hashes_null() {
|
||||
let mut input: String = r#"{
|
||||
"action": "scrape",
|
||||
"info_hash": null
|
||||
}"#
|
||||
.into();
|
||||
let observed: ScrapeRequest = unsafe {
|
||||
let mut input: String = r#"{
|
||||
"action": "scrape",
|
||||
"info_hash": null
|
||||
}"#
|
||||
.into();
|
||||
|
||||
::simd_json::serde::from_str(&mut input).unwrap()
|
||||
};
|
||||
|
||||
let expected = ScrapeRequest {
|
||||
action: ScrapeAction,
|
||||
info_hashes: None,
|
||||
};
|
||||
|
||||
let observed: ScrapeRequest = ::simd_json::serde::from_str(&mut input).unwrap();
|
||||
|
||||
assert_eq!(expected, observed);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_deserialize_info_hashes_missing() {
|
||||
let mut input: String = r#"{
|
||||
"action": "scrape"
|
||||
}"#
|
||||
.into();
|
||||
let observed: ScrapeRequest = unsafe {
|
||||
let mut input: String = r#"{
|
||||
"action": "scrape"
|
||||
}"#
|
||||
.into();
|
||||
|
||||
::simd_json::serde::from_str(&mut input).unwrap()
|
||||
};
|
||||
|
||||
let expected = ScrapeRequest {
|
||||
action: ScrapeAction,
|
||||
info_hashes: None,
|
||||
};
|
||||
|
||||
let observed: ScrapeRequest = ::simd_json::serde::from_str(&mut input).unwrap();
|
||||
|
||||
assert_eq!(expected, observed);
|
||||
}
|
||||
|
||||
#[quickcheck]
|
||||
fn quickcheck_serde_identity_info_hashes(info_hashes: ScrapeRequestInfoHashes) -> bool {
|
||||
let mut json = ::simd_json::serde::to_string(&info_hashes).unwrap();
|
||||
let deserialized: ScrapeRequestInfoHashes = unsafe {
|
||||
let mut json = ::simd_json::serde::to_string(&info_hashes).unwrap();
|
||||
|
||||
println!("{}", json);
|
||||
|
||||
let deserialized: ScrapeRequestInfoHashes =
|
||||
::simd_json::serde::from_str(&mut json).unwrap();
|
||||
::simd_json::serde::from_str(&mut json).unwrap()
|
||||
};
|
||||
|
||||
let success = info_hashes == deserialized;
|
||||
|
||||
|
|
|
|||
|
|
@ -26,8 +26,10 @@ impl InMessage {
|
|||
use tungstenite::Message;
|
||||
|
||||
match ws_message {
|
||||
Message::Text(mut text) => {
|
||||
::simd_json::serde::from_str(&mut text).context("deserialize with serde")
|
||||
Message::Text(text) => {
|
||||
let mut text: Vec<u8> = text.into();
|
||||
|
||||
::simd_json::serde::from_slice(&mut text).context("deserialize with serde")
|
||||
}
|
||||
Message::Binary(mut bytes) => {
|
||||
::simd_json::serde::from_slice(&mut bytes[..]).context("deserialize with serde")
|
||||
|
|
|
|||
|
|
@ -33,12 +33,12 @@ impl OutMessage {
|
|||
pub fn from_ws_message(message: ::tungstenite::Message) -> ::anyhow::Result<Self> {
|
||||
use tungstenite::Message::{Binary, Text};
|
||||
|
||||
let mut text = match message {
|
||||
Text(text) => text,
|
||||
Binary(bytes) => String::from_utf8(bytes)?,
|
||||
let mut text: Vec<u8> = match message {
|
||||
Text(text) => text.into(),
|
||||
Binary(bytes) => String::from_utf8(bytes)?.into(),
|
||||
_ => return Err(anyhow::anyhow!("Message is neither text nor bytes")),
|
||||
};
|
||||
|
||||
Ok(::simd_json::serde::from_str(&mut text)?)
|
||||
Ok(::simd_json::serde::from_slice(&mut text)?)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue