summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs1
-rw-r--r--src/msg.fbs4
-rw-r--r--src/msg_util.rs21
-rw-r--r--src/ops.rs16
4 files changed, 27 insertions, 15 deletions
diff --git a/src/main.rs b/src/main.rs
index 0defa6838..b7efd40af 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -31,6 +31,7 @@ mod http_util;
pub mod isolate;
pub mod libdeno;
pub mod msg;
+pub mod msg_util;
pub mod ops;
pub mod permissions;
pub mod resources;
diff --git a/src/msg.fbs b/src/msg.fbs
index f402960a1..5f86ad56a 100644
--- a/src/msg.fbs
+++ b/src/msg.fbs
@@ -182,10 +182,10 @@ table SetEnv {
}
table EnvironRes {
- map: [EnvPair];
+ map: [KeyValue];
}
-table EnvPair {
+table KeyValue {
key: string;
value: string;
}
diff --git a/src/msg_util.rs b/src/msg_util.rs
new file mode 100644
index 000000000..350e8ac10
--- /dev/null
+++ b/src/msg_util.rs
@@ -0,0 +1,21 @@
+// Copyright 2018 the Deno authors. All rights reserved. MIT license.
+// Helpers for serialization.
+use flatbuffers;
+use msg;
+
+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),
+ ..Default::default()
+ },
+ )
+}
diff --git a/src/ops.rs b/src/ops.rs
index e93ec5cf7..9bca698ba 100644
--- a/src/ops.rs
+++ b/src/ops.rs
@@ -8,6 +8,7 @@ use isolate::Isolate;
use isolate::IsolateState;
use isolate::Op;
use msg;
+use msg_util;
use resources;
use resources::Resource;
use version;
@@ -358,19 +359,8 @@ fn op_env(
let builder = &mut FlatBufferBuilder::new();
let vars: Vec<_> = std::env::vars()
- .map(|(key, value)| {
- let key = builder.create_string(&key);
- let value = builder.create_string(&value);
-
- msg::EnvPair::create(
- builder,
- &msg::EnvPairArgs {
- key: Some(key),
- value: Some(value),
- ..Default::default()
- },
- )
- }).collect();
+ .map(|(key, value)| msg_util::serialize_key_value(builder, &key, &value))
+ .collect();
let tables = builder.create_vector(&vars);
let inner = msg::EnvironRes::create(
builder,