mirror of
https://github.com/openharmony/third_party_rust_http.git
synced 2026-07-18 20:54:29 -04:00
Upgrade to bytes 0.5
This commit is contained in:
+1
-1
@@ -14,7 +14,7 @@ matrix:
|
||||
- rustup target add wasm32-unknown-unknown
|
||||
- cargo build --target=wasm32-unknown-unknown
|
||||
# minimum rustc version
|
||||
- rust: 1.36.0
|
||||
- rust: 1.39.0
|
||||
script: cargo build
|
||||
|
||||
script:
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ edition = "2018"
|
||||
publish = false
|
||||
|
||||
[dependencies]
|
||||
bytes = "0.4"
|
||||
bytes = "0.5"
|
||||
fnv = "1.0.5"
|
||||
itoa = "0.4.1"
|
||||
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ impl<'a> From<&'a str> for ByteStr {
|
||||
#[inline]
|
||||
fn from(src: &'a str) -> ByteStr {
|
||||
ByteStr {
|
||||
bytes: Bytes::from(src),
|
||||
bytes: Bytes::copy_from_slice(src.as_bytes()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -1666,7 +1666,7 @@ impl HeaderName {
|
||||
match parse_hdr(src, &mut buf, &HEADER_CHARS)?.inner {
|
||||
Repr::Standard(std) => Ok(std.into()),
|
||||
Repr::Custom(MaybeLower { buf, lower: true }) => {
|
||||
let buf = Bytes::from(buf);
|
||||
let buf = Bytes::copy_from_slice(buf);
|
||||
let val = unsafe { ByteStr::from_utf8_unchecked(buf) };
|
||||
Ok(Custom(val).into())
|
||||
}
|
||||
@@ -1681,7 +1681,7 @@ impl HeaderName {
|
||||
return Err(InvalidHeaderName::new());
|
||||
}
|
||||
|
||||
dst.put(b);
|
||||
dst.put_u8(b);
|
||||
}
|
||||
|
||||
let val = unsafe { ByteStr::from_utf8_unchecked(dst.freeze()) };
|
||||
@@ -1716,7 +1716,7 @@ impl HeaderName {
|
||||
match parse_hdr(src, &mut buf, &HEADER_CHARS_H2)?.inner {
|
||||
Repr::Standard(std) => Ok(std.into()),
|
||||
Repr::Custom(MaybeLower { buf, lower: true }) => {
|
||||
let buf = Bytes::from(buf);
|
||||
let buf = Bytes::copy_from_slice(buf);
|
||||
let val = unsafe { ByteStr::from_utf8_unchecked(buf) };
|
||||
Ok(Custom(val).into())
|
||||
}
|
||||
@@ -1727,7 +1727,7 @@ impl HeaderName {
|
||||
}
|
||||
}
|
||||
|
||||
let buf = Bytes::from(buf);
|
||||
let buf = Bytes::copy_from_slice(buf);
|
||||
let val = unsafe { ByteStr::from_utf8_unchecked(buf) };
|
||||
Ok(Custom(val).into())
|
||||
}
|
||||
@@ -2084,7 +2084,7 @@ impl<'a> From<HdrName<'a>> for HeaderName {
|
||||
},
|
||||
Repr::Custom(maybe_lower) => {
|
||||
if maybe_lower.lower {
|
||||
let buf = Bytes::from(&maybe_lower.buf[..]);
|
||||
let buf = Bytes::copy_from_slice(&maybe_lower.buf[..]);
|
||||
let byte_str = unsafe { ByteStr::from_utf8_unchecked(buf) };
|
||||
|
||||
HeaderName {
|
||||
@@ -2095,7 +2095,7 @@ impl<'a> From<HdrName<'a>> for HeaderName {
|
||||
let mut dst = BytesMut::with_capacity(maybe_lower.buf.len());
|
||||
|
||||
for b in maybe_lower.buf.iter() {
|
||||
dst.put(HEADER_CHARS[*b as usize]);
|
||||
dst.put_u8(HEADER_CHARS[*b as usize]);
|
||||
}
|
||||
|
||||
let buf = unsafe { ByteStr::from_utf8_unchecked(dst.freeze()) };
|
||||
|
||||
+14
-5
@@ -103,7 +103,7 @@ impl HeaderValue {
|
||||
/// ```
|
||||
#[inline]
|
||||
pub fn from_str(src: &str) -> Result<HeaderValue, InvalidHeaderValue> {
|
||||
HeaderValue::try_from(src)
|
||||
HeaderValue::try_from_generic(src, |s| Bytes::copy_from_slice(s.as_bytes()))
|
||||
}
|
||||
|
||||
/// Converts a HeaderName into a HeaderValue
|
||||
@@ -149,7 +149,7 @@ impl HeaderValue {
|
||||
/// ```
|
||||
#[inline]
|
||||
pub fn from_bytes(src: &[u8]) -> Result<HeaderValue, InvalidHeaderValue> {
|
||||
HeaderValue::try_from(src)
|
||||
HeaderValue::try_from_generic(src, Bytes::copy_from_slice)
|
||||
}
|
||||
|
||||
/// Attempt to convert a `Bytes` buffer to a `HeaderValue`.
|
||||
@@ -162,7 +162,7 @@ impl HeaderValue {
|
||||
/// implementation once the trait is stabilized in std.
|
||||
#[inline]
|
||||
pub fn from_shared(src: Bytes) -> Result<HeaderValue, InvalidHeaderValueBytes> {
|
||||
HeaderValue::try_from(src).map_err(InvalidHeaderValueBytes)
|
||||
HeaderValue::try_from_generic(src, std::convert::identity).map_err(InvalidHeaderValueBytes)
|
||||
}
|
||||
|
||||
/// Convert a `Bytes` directly into a `HeaderValue` without validating.
|
||||
@@ -188,14 +188,14 @@ impl HeaderValue {
|
||||
}
|
||||
}
|
||||
|
||||
fn try_from<T: AsRef<[u8]> + Into<Bytes>>(src: T) -> Result<HeaderValue, InvalidHeaderValue> {
|
||||
fn try_from_generic<T: AsRef<[u8]>, F: FnOnce(T) -> Bytes>(src: T, into: F) -> Result<HeaderValue, InvalidHeaderValue> {
|
||||
for &b in src.as_ref() {
|
||||
if !is_valid(b) {
|
||||
return Err(InvalidHeaderValue { _priv: () });
|
||||
}
|
||||
}
|
||||
Ok(HeaderValue {
|
||||
inner: src.into(),
|
||||
inner: into(src),
|
||||
is_sensitive: false,
|
||||
})
|
||||
}
|
||||
@@ -524,6 +524,15 @@ impl TryFrom<String> for HeaderValue {
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<Vec<u8>> for HeaderValue {
|
||||
type Error = InvalidHeaderValueBytes;
|
||||
|
||||
#[inline]
|
||||
fn try_from(vec: Vec<u8>) -> Result<Self, Self::Error> {
|
||||
HeaderValue::from_shared(vec.into())
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<Bytes> for HeaderValue {
|
||||
type Error = InvalidHeaderValueBytes;
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// Deprecated in 1.26, needed until our minimum version is >=1.23.
|
||||
#[allow(unused, deprecated)]
|
||||
use std::ascii::AsciiExt;
|
||||
use std::convert::TryFrom;
|
||||
use std::hash::{Hash, Hasher};
|
||||
use std::str::FromStr;
|
||||
@@ -474,7 +471,9 @@ impl<'a> TryFrom<&'a [u8]> for Authority {
|
||||
}
|
||||
|
||||
Ok(Authority {
|
||||
data: unsafe { ByteStr::from_utf8_unchecked(s.into()) },
|
||||
data: unsafe {
|
||||
ByteStr::from_utf8_unchecked(Bytes::copy_from_slice(s))
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -878,7 +878,7 @@ impl FromStr for Uri {
|
||||
|
||||
#[inline]
|
||||
fn from_str(s: &str) -> Result<Uri, InvalidUri> {
|
||||
Uri::from_shared(s.into()).map_err(|e| e.0)
|
||||
Uri::from_shared(Bytes::copy_from_slice(s.as_bytes())).map_err(|e| e.0)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -295,7 +295,7 @@ impl<'a> TryFrom<&'a [u8]> for PathAndQuery {
|
||||
type Error = InvalidUri;
|
||||
#[inline]
|
||||
fn try_from(s: &'a [u8]) -> Result<Self, Self::Error> {
|
||||
PathAndQuery::from_shared(s.into()).map_err(|e| e.0)
|
||||
PathAndQuery::from_shared(Bytes::copy_from_slice(s)).map_err(|e| e.0)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-4
@@ -1,6 +1,3 @@
|
||||
// Deprecated in 1.26, needed until our minimum version is >=1.23.
|
||||
#[allow(unused, deprecated)]
|
||||
use std::ascii::AsciiExt;
|
||||
use std::convert::TryFrom;
|
||||
use std::fmt;
|
||||
use std::hash::{Hash, Hasher};
|
||||
@@ -147,7 +144,9 @@ impl<'a> TryFrom<&'a [u8]> for Scheme {
|
||||
Standard(p) => Ok(Standard(p).into()),
|
||||
Other(_) => {
|
||||
// Unsafe: parse_exact already checks for a strict subset of UTF-8
|
||||
Ok(Other(Box::new(unsafe { ByteStr::from_utf8_unchecked(s.into()) })).into())
|
||||
Ok(Other(Box::new(unsafe {
|
||||
ByteStr::from_utf8_unchecked(Bytes::copy_from_slice(s))
|
||||
})).into())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user