diff options
Diffstat (limited to 'components/webdriver_traits/lib.rs')
-rw-r--r-- | components/webdriver_traits/lib.rs | 36 |
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() + } + } +} |