summaryrefslogtreecommitdiff
path: root/serde_v8/src/magic/string_or_buffer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'serde_v8/src/magic/string_or_buffer.rs')
-rw-r--r--serde_v8/src/magic/string_or_buffer.rs45
1 files changed, 0 insertions, 45 deletions
diff --git a/serde_v8/src/magic/string_or_buffer.rs b/serde_v8/src/magic/string_or_buffer.rs
deleted file mode 100644
index edde2adcd..000000000
--- a/serde_v8/src/magic/string_or_buffer.rs
+++ /dev/null
@@ -1,45 +0,0 @@
-use std::ops::Deref;
-
-#[derive(Debug)]
-pub struct StringOrBuffer(Vec<u8>);
-
-impl Deref for StringOrBuffer {
- type Target = Vec<u8>;
- fn deref(&self) -> &Vec<u8> {
- &self.0
- }
-}
-
-impl StringOrBuffer {
- pub fn into_bytes(self) -> Vec<u8> {
- self.0
- }
-}
-
-impl<'de> serde::Deserialize<'de> for StringOrBuffer {
- fn deserialize<D>(deserializer: D) -> Result<StringOrBuffer, D::Error>
- where
- D: serde::Deserializer<'de>,
- {
- StringOrBufferInner::deserialize(deserializer)
- .map(|x| StringOrBuffer(x.into_bytes()))
- }
-}
-
-// TODO(@AaronO): explore if we can make this work with ZeroCopyBuf
-#[derive(serde::Deserialize)]
-#[serde(untagged)]
-enum StringOrBufferInner {
- #[serde(with = "serde_bytes")]
- Buffer(Vec<u8>),
- String(String),
-}
-
-impl StringOrBufferInner {
- fn into_bytes(self) -> Vec<u8> {
- match self {
- Self::String(s) => s.into_bytes(),
- Self::Buffer(b) => b,
- }
- }
-}