aboutsummaryrefslogtreecommitdiffstats
path: root/components/webdriver_traits/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/webdriver_traits/lib.rs')
-rw-r--r--components/webdriver_traits/lib.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/components/webdriver_traits/lib.rs b/components/webdriver_traits/lib.rs
new file mode 100644
index 00000000000..4e6a307f64a
--- /dev/null
+++ b/components/webdriver_traits/lib.rs
@@ -0,0 +1,36 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#![crate_name = "webdriver_traits"]
+#![crate_type = "rlib"]
+
+extern crate "rustc-serialize" as rustc_serialize;
+use rustc_serialize::json::{Json, ToJson};
+
+use std::sync::mpsc::Sender;
+
+pub enum WebDriverScriptCommand {
+ EvaluateJS(String, Sender<Result<EvaluateJSReply, ()>>)
+}
+
+pub enum EvaluateJSReply {
+ VoidValue,
+ NullValue,
+ BooleanValue(bool),
+ NumberValue(f64),
+ StringValue(String),
+ // TODO: ObjectValue and WebElementValue
+}
+
+impl ToJson for EvaluateJSReply {
+ fn to_json(&self) -> Json {
+ match self {
+ &EvaluateJSReply::VoidValue => Json::Null,
+ &EvaluateJSReply::NullValue => Json::Null,
+ &EvaluateJSReply::BooleanValue(ref x) => x.to_json(),
+ &EvaluateJSReply::NumberValue(ref x) => x.to_json(),
+ &EvaluateJSReply::StringValue(ref x) => x.to_json()
+ }
+ }
+}