Skip to content

Commit 21cc445

Browse files
committed
bye bye stry
Signed-off-by: Heinz N. Gies <heinz@licenser.net>
1 parent 6d197e2 commit 21cc445

File tree

10 files changed

+182
-248
lines changed

10 files changed

+182
-248
lines changed

src/macros.rs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,19 +1298,6 @@ macro_rules! static_cast_u64 {
12981298
};
12991299
}
13001300

1301-
/// FROM serde-json
1302-
/// We only use our own error type; no need for From conversions provided by the
1303-
/// standard library's try! macro. This reduces lines of LLVM IR by 4%.
1304-
#[macro_export]
1305-
macro_rules! stry {
1306-
($e:expr) => {
1307-
match $e {
1308-
::std::result::Result::Ok(val) => val,
1309-
::std::result::Result::Err(err) => return ::std::result::Result::Err(err),
1310-
}
1311-
};
1312-
}
1313-
13141301
#[cfg(test)]
13151302
mod test {
13161303
use crate::prelude::*;

src/serde.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ mod se;
1111
mod value;
1212
pub use self::se::*;
1313
pub use self::value::*;
14-
use crate::{stry, Buffers, Deserializer, Error, ErrorType, Node, Result};
1514
use crate::{BorrowedValue, OwnedValue};
15+
use crate::{Buffers, Deserializer, Error, ErrorType, Node, Result};
1616
use serde::de::DeserializeOwned;
1717
use serde_ext::Deserialize;
1818
use std::fmt;
@@ -57,7 +57,7 @@ pub fn from_slice<'a, T>(s: &'a mut [u8]) -> Result<T>
5757
where
5858
T: Deserialize<'a>,
5959
{
60-
let mut deserializer = stry!(Deserializer::from_slice(s));
60+
let mut deserializer = Deserializer::from_slice(s)?;
6161
T::deserialize(&mut deserializer)
6262
}
6363

@@ -74,7 +74,7 @@ pub fn from_slice_with_buffers<'a, T>(s: &'a mut [u8], buffers: &mut Buffers) ->
7474
where
7575
T: Deserialize<'a>,
7676
{
77-
let mut deserializer = stry!(Deserializer::from_slice_with_buffers(s, buffers));
77+
let mut deserializer = Deserializer::from_slice_with_buffers(s, buffers)?;
7878
T::deserialize(&mut deserializer)
7979
}
8080

@@ -98,7 +98,7 @@ pub unsafe fn from_str<'a, T>(s: &'a mut str) -> Result<T>
9898
where
9999
T: Deserialize<'a>,
100100
{
101-
let mut deserializer = stry!(Deserializer::from_slice(s.as_bytes_mut()));
101+
let mut deserializer = Deserializer::from_slice(s.as_bytes_mut())?;
102102

103103
T::deserialize(&mut deserializer)
104104
}
@@ -125,10 +125,7 @@ pub unsafe fn from_str_with_buffers<'a, T>(s: &'a mut str, buffers: &mut Buffers
125125
where
126126
T: Deserialize<'a>,
127127
{
128-
let mut deserializer = stry!(Deserializer::from_slice_with_buffers(
129-
s.as_bytes_mut(),
130-
buffers
131-
));
128+
let mut deserializer = Deserializer::from_slice_with_buffers(s.as_bytes_mut(), buffers)?;
132129

133130
T::deserialize(&mut deserializer)
134131
}
@@ -149,7 +146,7 @@ where
149146
if let Err(e) = rdr.read_to_end(&mut data) {
150147
return Err(Error::generic(ErrorType::Io(e)));
151148
};
152-
let mut deserializer = stry!(Deserializer::from_slice(&mut data));
149+
let mut deserializer = Deserializer::from_slice(&mut data)?;
153150
T::deserialize(&mut deserializer)
154151
}
155152

@@ -171,7 +168,7 @@ where
171168
if let Err(e) = rdr.read_to_end(&mut data) {
172169
return Err(Error::generic(ErrorType::Io(e)));
173170
};
174-
let mut deserializer = stry!(Deserializer::from_slice_with_buffers(&mut data, buffers));
171+
let mut deserializer = Deserializer::from_slice_with_buffers(&mut data, buffers)?;
175172
T::deserialize(&mut deserializer)
176173
}
177174

src/serde/de.rs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::serde_ext::de::IntoDeserializer;
2-
use crate::{stry, Deserializer, Error, ErrorType, Node, Result, StaticNode};
2+
use crate::{Deserializer, Error, ErrorType, Node, Result, StaticNode};
33
use serde_ext::de::{self, DeserializeSeed, MapAccess, SeqAccess, Visitor};
44
use serde_ext::forward_to_deserialize_any;
55
use std::str;
@@ -18,7 +18,7 @@ where
1818
where
1919
V: Visitor<'de>,
2020
{
21-
match stry!(self.next()) {
21+
match self.next()? {
2222
Node::String(s) => visitor.visit_borrowed_str(s),
2323
Node::Static(StaticNode::Null) => visitor.visit_unit(),
2424
Node::Static(StaticNode::Bool(b)) => visitor.visit_bool(b),
@@ -53,7 +53,7 @@ where
5353
where
5454
V: Visitor<'de>,
5555
{
56-
match stry!(self.next()) {
56+
match self.next()? {
5757
Node::Static(StaticNode::Bool(b)) => visitor.visit_bool(b),
5858
_c => Err(Deserializer::error(ErrorType::ExpectedBoolean)),
5959
}
@@ -93,7 +93,7 @@ where
9393
where
9494
V: Visitor<'de>,
9595
{
96-
visitor.visit_i8(stry!(self.parse_i8()))
96+
visitor.visit_i8(self.parse_i8()?)
9797
}
9898

9999
#[cfg_attr(not(feature = "no-inline"), inline)]
@@ -102,7 +102,7 @@ where
102102
where
103103
V: Visitor<'de>,
104104
{
105-
visitor.visit_i16(stry!(self.parse_i16()))
105+
visitor.visit_i16(self.parse_i16()?)
106106
}
107107

108108
#[cfg_attr(not(feature = "no-inline"), inline)]
@@ -111,23 +111,23 @@ where
111111
where
112112
V: Visitor<'de>,
113113
{
114-
visitor.visit_i32(stry!(self.parse_i32()))
114+
visitor.visit_i32(self.parse_i32()?)
115115
}
116116

117117
#[cfg_attr(not(feature = "no-inline"), inline)]
118118
fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value>
119119
where
120120
V: Visitor<'de>,
121121
{
122-
visitor.visit_i64(stry!(self.parse_i64()))
122+
visitor.visit_i64(self.parse_i64()?)
123123
}
124124

125125
#[cfg_attr(not(feature = "no-inline"), inline)]
126126
fn deserialize_i128<V>(self, visitor: V) -> Result<V::Value>
127127
where
128128
V: Visitor<'de>,
129129
{
130-
visitor.visit_i128(stry!(self.parse_i128()))
130+
visitor.visit_i128(self.parse_i128()?)
131131
}
132132

133133
#[cfg_attr(not(feature = "no-inline"), inline)]
@@ -136,7 +136,7 @@ where
136136
where
137137
V: Visitor<'de>,
138138
{
139-
visitor.visit_u8(stry!(self.parse_u8()))
139+
visitor.visit_u8(self.parse_u8()?)
140140
}
141141

142142
#[cfg_attr(not(feature = "no-inline"), inline)]
@@ -145,7 +145,7 @@ where
145145
where
146146
V: Visitor<'de>,
147147
{
148-
visitor.visit_u16(stry!(self.parse_u16()))
148+
visitor.visit_u16(self.parse_u16()?)
149149
}
150150

151151
#[cfg_attr(not(feature = "no-inline"), inline)]
@@ -154,23 +154,23 @@ where
154154
where
155155
V: Visitor<'de>,
156156
{
157-
visitor.visit_u32(stry!(self.parse_u32()))
157+
visitor.visit_u32(self.parse_u32()?)
158158
}
159159

160160
#[cfg_attr(not(feature = "no-inline"), inline)]
161161
fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value>
162162
where
163163
V: Visitor<'de>,
164164
{
165-
visitor.visit_u64(stry!(self.parse_u64()))
165+
visitor.visit_u64(self.parse_u64()?)
166166
}
167167

168168
#[cfg_attr(not(feature = "no-inline"), inline)]
169169
fn deserialize_u128<V>(self, visitor: V) -> Result<V::Value>
170170
where
171171
V: Visitor<'de>,
172172
{
173-
visitor.visit_u128(stry!(self.parse_u128()))
173+
visitor.visit_u128(self.parse_u128()?)
174174
}
175175

176176
#[cfg_attr(not(feature = "no-inline"), inline)]
@@ -179,7 +179,7 @@ where
179179
where
180180
V: Visitor<'de>,
181181
{
182-
let v: f64 = stry!(self.parse_double());
182+
let v: f64 = self.parse_double()?;
183183
visitor.visit_f32(v as f32)
184184
}
185185

@@ -188,7 +188,7 @@ where
188188
where
189189
V: Visitor<'de>,
190190
{
191-
visitor.visit_f64(stry!(self.parse_double()))
191+
visitor.visit_f64(self.parse_double()?)
192192
}
193193

194194
// An absent optional is represented as the JSON `null` and a present
@@ -205,7 +205,7 @@ where
205205
where
206206
V: Visitor<'de>,
207207
{
208-
if stry!(self.peek()) == Node::Static(StaticNode::Null) {
208+
if self.peek()? == Node::Static(StaticNode::Null) {
209209
self.skip();
210210
visitor.visit_unit()
211211
} else {
@@ -219,7 +219,7 @@ where
219219
where
220220
V: Visitor<'de>,
221221
{
222-
if stry!(self.next()) != Node::Static(StaticNode::Null) {
222+
if self.next()? != Node::Static(StaticNode::Null) {
223223
return Err(Deserializer::error(ErrorType::ExpectedNull));
224224
}
225225
visitor.visit_unit()
@@ -371,7 +371,7 @@ impl<'de, 'a> de::EnumAccess<'de> for VariantAccess<'a, 'de> {
371371
where
372372
V: de::DeserializeSeed<'de>,
373373
{
374-
let val = stry!(seed.deserialize(&mut *self.de));
374+
let val = seed.deserialize(&mut *self.de)?;
375375
Ok((val, self))
376376
}
377377
}
@@ -487,12 +487,12 @@ macro_rules! deserialize_integer_key {
487487
where
488488
V: de::Visitor<'de>,
489489
{
490-
visitor.$visit(stry!(match unsafe { self.de.next_() } {
490+
visitor.$visit(match unsafe { self.de.next_() } {
491491
Node::String(s) => s
492492
.parse::<$type>()
493493
.map_err(|_| Deserializer::error(ErrorType::InvalidNumber)),
494494
_ => Err(Deserializer::error(ErrorType::ExpectedString)),
495-
}))
495+
}?)
496496
}
497497
};
498498
}
@@ -505,7 +505,7 @@ impl<'de, 'a> de::Deserializer<'de> for MapKey<'de, 'a> {
505505
where
506506
V: de::Visitor<'de>,
507507
{
508-
match stry!(self.de.next()) {
508+
match self.de.next()? {
509509
Node::String(s) => visitor.visit_borrowed_str(s),
510510
_ => Err(Deserializer::error(ErrorType::ExpectedString)),
511511
}

src/serde/se/pp.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::{stry, Error, ErrorType};
1+
use crate::{Error, ErrorType};
22
use serde_ext::ser;
33
use std::io::Write;
44
use std::str;
@@ -87,7 +87,7 @@ where
8787
9 => self.get_writer().write_all(b" "),
8888
_ => {
8989
for _ in 0..(self.dent * 2) {
90-
stry!(self.get_writer().write_all(b" "));
90+
self.get_writer().write_all(b" ")?;
9191
}
9292
Ok(())
9393
}

src/serde/value/borrowed/se.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use super::to_value;
22
use crate::{
33
cow::Cow,
4-
stry,
54
value::borrowed::{Object, Value},
65
Error, ErrorType, Result,
76
};
@@ -192,7 +191,7 @@ impl<'se> serde::Serializer for Serializer<'se> {
192191
T: ?Sized + Serialize,
193192
{
194193
let mut values = Object::with_capacity_and_hasher(1, ObjectHasher::default());
195-
let x = stry!(to_value(value));
194+
let x = to_value(value)?;
196195
values.insert_nocheck(variant.into(), x);
197196
Ok(Value::from(values))
198197
}
@@ -293,7 +292,7 @@ impl<'se> serde::ser::SerializeSeq for SerializeVec<'se> {
293292
where
294293
T: ?Sized + Serialize,
295294
{
296-
self.vec.push(stry!(to_value(value)));
295+
self.vec.push(to_value(value)?);
297296
Ok(())
298297
}
299298

@@ -342,7 +341,7 @@ impl<'se> serde::ser::SerializeTupleVariant for SerializeTupleVariant<'se> {
342341
where
343342
T: ?Sized + Serialize,
344343
{
345-
self.vec.push(stry!(to_value(value)));
344+
self.vec.push(to_value(value)?);
346345
Ok(())
347346
}
348347

@@ -362,9 +361,9 @@ impl<'se> serde::ser::SerializeMap for SerializeMap<'se> {
362361
where
363362
T: ?Sized + Serialize,
364363
{
365-
self.next_key = Some(stry!(key.serialize(MapKeySerializer {
366-
marker: PhantomData
367-
})));
364+
self.next_key = Some(key.serialize(MapKeySerializer {
365+
marker: PhantomData,
366+
})?);
368367
Ok(())
369368
}
370369

@@ -376,7 +375,7 @@ impl<'se> serde::ser::SerializeMap for SerializeMap<'se> {
376375
// Panic because this indicates a bug in the program rather than an
377376
// expected failure.
378377
let key = key.expect("serialize_value called before serialize_key");
379-
self.map.insert(key, stry!(to_value(value)));
378+
self.map.insert(key, to_value(value)?);
380379
Ok(())
381380
}
382381

@@ -570,7 +569,7 @@ impl<'se> serde::ser::SerializeStruct for SerializeMap<'se> {
570569
where
571570
T: ?Sized + Serialize,
572571
{
573-
stry!(serde::ser::SerializeMap::serialize_key(self, key));
572+
serde::ser::SerializeMap::serialize_key(self, key)?;
574573
serde::ser::SerializeMap::serialize_value(self, value)
575574
}
576575

@@ -587,7 +586,7 @@ impl<'se> serde::ser::SerializeStructVariant for SerializeStructVariant<'se> {
587586
where
588587
T: ?Sized + Serialize,
589588
{
590-
self.map.insert(key.into(), stry!(to_value(value)));
589+
self.map.insert(key.into(), to_value(value)?);
591590
Ok(())
592591
}
593592

0 commit comments

Comments
 (0)