Skip to content

Commit 8afacb9

Browse files
committed
Improve error message when neither std nor alloc is enabled
1 parent da0a39f commit 8afacb9

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

src/map.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::lib::borrow::Borrow;
1010
use crate::lib::iter::FromIterator;
1111
use crate::lib::*;
1212
use crate::value::Value;
13-
use serde::{de, ser};
13+
use serde::de;
1414

1515
#[cfg(feature = "preserve_order")]
1616
use indexmap::{self, IndexMap};
@@ -289,11 +289,12 @@ impl Debug for Map<String, Value> {
289289
}
290290
}
291291

292-
impl ser::Serialize for Map<String, Value> {
292+
#[cfg(any(feature = "std", feature = "alloc"))]
293+
impl serde::ser::Serialize for Map<String, Value> {
293294
#[inline]
294295
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
295296
where
296-
S: ser::Serializer,
297+
S: serde::ser::Serializer,
297298
{
298299
use serde::ser::SerializeMap;
299300
let mut map = tri!(serializer.serialize_map(Some(self.len())));
@@ -327,6 +328,7 @@ impl<'de> de::Deserialize<'de> for Map<String, Value> {
327328
Ok(Map::new())
328329
}
329330

331+
#[cfg(any(feature = "std", feature = "alloc"))]
330332
#[inline]
331333
fn visit_map<V>(self, mut visitor: V) -> Result<Self::Value, V::Error>
332334
where

src/value/de.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ impl<'de> Deserialize<'de> for Value {
4848
Ok(Number::from_f64(value).map_or(Value::Null, Value::Number))
4949
}
5050

51+
#[cfg(any(feature = "std", feature = "alloc"))]
5152
#[inline]
5253
fn visit_str<E>(self, value: &str) -> Result<Value, E>
5354
where
@@ -56,6 +57,7 @@ impl<'de> Deserialize<'de> for Value {
5657
self.visit_string(String::from(value))
5758
}
5859

60+
#[cfg(any(feature = "std", feature = "alloc"))]
5961
#[inline]
6062
fn visit_string<E>(self, value: String) -> Result<Value, E> {
6163
Ok(Value::String(value))
@@ -93,6 +95,7 @@ impl<'de> Deserialize<'de> for Value {
9395
Ok(Value::Array(vec))
9496
}
9597

98+
#[cfg(any(feature = "std", feature = "alloc"))]
9699
fn visit_map<V>(self, mut visitor: V) -> Result<Value, V::Error>
97100
where
98101
V: MapAccess<'de>,
@@ -208,6 +211,7 @@ impl<'de> serde::Deserializer<'de> for Value {
208211
Value::Null => visitor.visit_unit(),
209212
Value::Bool(v) => visitor.visit_bool(v),
210213
Value::Number(n) => n.deserialize_any(visitor),
214+
#[cfg(any(feature = "std", feature = "alloc"))]
211215
Value::String(v) => visitor.visit_string(v),
212216
Value::Array(v) => visit_array(v, visitor),
213217
Value::Object(v) => visit_object(v, visitor),
@@ -338,6 +342,7 @@ impl<'de> serde::Deserializer<'de> for Value {
338342
V: Visitor<'de>,
339343
{
340344
match self {
345+
#[cfg(any(feature = "std", feature = "alloc"))]
341346
Value::String(v) => visitor.visit_string(v),
342347
_ => Err(self.invalid_type(&visitor)),
343348
}
@@ -355,6 +360,7 @@ impl<'de> serde::Deserializer<'de> for Value {
355360
V: Visitor<'de>,
356361
{
357362
match self {
363+
#[cfg(any(feature = "std", feature = "alloc"))]
358364
Value::String(v) => visitor.visit_string(v),
359365
Value::Array(v) => visit_array(v, visitor),
360366
_ => Err(self.invalid_type(&visitor)),
@@ -1225,6 +1231,7 @@ macro_rules! deserialize_integer_key {
12251231
match (self.key.parse(), self.key) {
12261232
(Ok(integer), _) => visitor.$visit(integer),
12271233
(Err(_), Cow::Borrowed(s)) => visitor.visit_borrowed_str(s),
1234+
#[cfg(any(feature = "std", feature = "alloc"))]
12281235
(Err(_), Cow::Owned(s)) => visitor.visit_string(s),
12291236
}
12301237
}
@@ -1337,6 +1344,7 @@ impl<'de> Visitor<'de> for KeyClassifier {
13371344
}
13381345
}
13391346

1347+
#[cfg(any(feature = "std", feature = "alloc"))]
13401348
fn visit_string<E>(self, s: String) -> Result<Self::Value, E>
13411349
where
13421350
E: de::Error,
@@ -1392,6 +1400,7 @@ impl<'de> de::Deserializer<'de> for BorrowedCowStrDeserializer<'de> {
13921400
{
13931401
match self.value {
13941402
Cow::Borrowed(string) => visitor.visit_borrowed_str(string),
1403+
#[cfg(any(feature = "std", feature = "alloc"))]
13951404
Cow::Owned(string) => visitor.visit_string(string),
13961405
}
13971406
}

src/value/ser.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ impl Serialize for Value {
2020
Value::Number(ref n) => n.serialize(serializer),
2121
Value::String(ref s) => serializer.serialize_str(s),
2222
Value::Array(ref v) => v.serialize(serializer),
23+
#[cfg(any(feature = "std", feature = "alloc"))]
2324
Value::Object(ref m) => {
2425
use serde::ser::SerializeMap;
2526
let mut map = tri!(serializer.serialize_map(Some(m.len())));

0 commit comments

Comments
 (0)