summaryrefslogtreecommitdiff
path: root/cli/msg_util.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2019-08-24 15:02:42 +0200
committerRyan Dahl <ry@tinyclouds.org>2019-08-24 06:02:42 -0700
commit79f82cf10ed1dbf91346994250d7311a4d74377a (patch)
treeb00755d666198b9c66264a3c240f849096951e2f /cli/msg_util.rs
parent5b2baa5c990fbeae747e952c5dcd7a5369e950b1 (diff)
port ops to JSON: compiler, errors, fetch, files (#2804)
Diffstat (limited to 'cli/msg_util.rs')
-rw-r--r--cli/msg_util.rs124
1 files changed, 0 insertions, 124 deletions
diff --git a/cli/msg_util.rs b/cli/msg_util.rs
deleted file mode 100644
index e37a91f3a..000000000
--- a/cli/msg_util.rs
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
-// Helpers for serialization.
-use crate::msg;
-use deno::ErrBox;
-use flatbuffers;
-use http::header::HeaderName;
-use http::uri::Uri;
-use http::Method;
-use hyper::header::HeaderMap;
-use hyper::header::HeaderValue;
-use hyper::Body;
-use hyper::Request;
-use hyper::Response;
-use std::str::FromStr;
-
-type Headers = HeaderMap<HeaderValue>;
-
-pub fn serialize_key_value<'bldr>(
- builder: &mut flatbuffers::FlatBufferBuilder<'bldr>,
- key: &str,
- value: &str,
-) -> flatbuffers::WIPOffset<msg::KeyValue<'bldr>> {
- let key = builder.create_string(&key);
- let value = builder.create_string(&value);
- msg::KeyValue::create(
- builder,
- &msg::KeyValueArgs {
- key: Some(key),
- value: Some(value),
- },
- )
-}
-
-pub fn serialize_request_header<'bldr>(
- builder: &mut flatbuffers::FlatBufferBuilder<'bldr>,
- r: &Request<Body>,
-) -> flatbuffers::WIPOffset<msg::HttpHeader<'bldr>> {
- let method = builder.create_string(r.method().as_str());
- let url = builder.create_string(r.uri().to_string().as_ref());
-
- let mut fields = Vec::new();
- for (key, val) in r.headers().iter() {
- let kv = serialize_key_value(builder, key.as_ref(), val.to_str().unwrap());
- fields.push(kv);
- }
- let fields = builder.create_vector(fields.as_ref());
-
- msg::HttpHeader::create(
- builder,
- &msg::HttpHeaderArgs {
- is_request: true,
- method: Some(method),
- url: Some(url),
- fields: Some(fields),
- ..Default::default()
- },
- )
-}
-
-pub fn serialize_fields<'bldr>(
- builder: &mut flatbuffers::FlatBufferBuilder<'bldr>,
- headers: &Headers,
-) -> flatbuffers::WIPOffset<
- flatbuffers::Vector<
- 'bldr,
- flatbuffers::ForwardsUOffset<msg::KeyValue<'bldr>>,
- >,
-> {
- let mut fields = Vec::new();
- for (key, val) in headers.iter() {
- let kv = serialize_key_value(builder, key.as_ref(), val.to_str().unwrap());
- fields.push(kv);
- }
- builder.create_vector(fields.as_ref())
-}
-
-// Not to be confused with serialize_response which has nothing to do with HTTP.
-pub fn serialize_http_response<'bldr>(
- builder: &mut flatbuffers::FlatBufferBuilder<'bldr>,
- r: &Response<Body>,
-) -> flatbuffers::WIPOffset<msg::HttpHeader<'bldr>> {
- let status = r.status().as_u16();
- let fields = serialize_fields(builder, r.headers());
- msg::HttpHeader::create(
- builder,
- &msg::HttpHeaderArgs {
- is_request: false,
- status,
- fields: Some(fields),
- ..Default::default()
- },
- )
-}
-
-pub fn deserialize_request(
- header_msg: msg::HttpHeader<'_>,
- body: Body,
-) -> Result<Request<Body>, ErrBox> {
- let mut r = Request::new(body);
-
- assert!(header_msg.is_request());
-
- let u = header_msg.url().unwrap();
- let u = Uri::from_str(u).map_err(ErrBox::from)?;
- *r.uri_mut() = u;
-
- if let Some(method) = header_msg.method() {
- let method = Method::from_str(method).unwrap();
- *r.method_mut() = method;
- }
-
- if let Some(fields) = header_msg.fields() {
- let headers = r.headers_mut();
- for i in 0..fields.len() {
- let kv = fields.get(i);
- let key = kv.key().unwrap();
- let name = HeaderName::from_bytes(key.as_bytes()).unwrap();
- let value = kv.value().unwrap();
- let v = HeaderValue::from_str(value).unwrap();
- headers.insert(name, v);
- }
- }
- Ok(r)
-}