diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 1 | ||||
-rw-r--r-- | src/msg.fbs | 4 | ||||
-rw-r--r-- | src/msg_util.rs | 21 | ||||
-rw-r--r-- | src/ops.rs | 16 |
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, |