Reduce visibility of parse_any_signed_number

This commit is contained in:
David Tolnay 2018-04-20 23:18:37 -07:00
parent 18d4146248
commit 52f2f773fa
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
2 changed files with 13 additions and 14 deletions

View File

@ -11,6 +11,8 @@
use std::io;
use std::marker::PhantomData;
use std::{i32, u64};
use std::result;
use std::str::FromStr;
use serde::de::{self, Expected, Unexpected};
@ -481,9 +483,7 @@ impl<'de, R: Read<'de>> Deserializer<R> {
Ok(if positive { 0.0 } else { -0.0 })
}
// Not public API. Should be pub(crate).
#[doc(hidden)]
pub fn parse_any_signed_number(&mut self) -> Result<Number> {
fn parse_any_signed_number(&mut self) -> Result<Number> {
let peek = match try!(self.peek()) {
Some(b) => b,
None => {
@ -910,6 +910,16 @@ impl<'de, R: Read<'de>> Deserializer<R> {
}
}
impl FromStr for super::Number {
type Err = Error;
fn from_str(s: &str) -> result::Result<Self, Self::Err> {
Deserializer::from_str(s)
.parse_any_signed_number()
.map(|n| n.into())
}
}
#[cfg_attr(rustfmt, rustfmt_skip)]
static POW10: [f64; 309] =
[1e000, 1e001, 1e002, 1e003, 1e004, 1e005, 1e006, 1e007, 1e008, 1e009,

View File

@ -11,7 +11,6 @@ use serde::de::{self, Unexpected, Visitor};
use serde::{Deserialize, Deserializer, Serialize, Serializer};
use std::fmt::{self, Debug, Display};
use std::i64;
use std::str::FromStr;
#[cfg(feature = "arbitrary_precision")]
use dtoa;
@ -644,16 +643,6 @@ impl<'de> Deserializer<'de> for NumberFieldDeserializer {
}
}
impl FromStr for Number {
type Err = Error;
fn from_str(s: &str) -> Result<Self, Self::Err> {
super::de::Deserializer::from_str(s)
.parse_any_signed_number()
.map(|n| n.into())
}
}
impl From<super::de::Number> for Number {
fn from(value: super::de::Number) -> Self {
let n = match value {