1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
use crate::common::command::Command; use crate::common::config::WebDriverConfig; use crate::error::WebDriverResult; use crate::http::connection_sync::WebDriverHttpClientSync; use crate::SessionId; use crate::WebDriverCommands; use std::sync::Arc; #[derive(Debug)] pub struct WebDriverSession { session_id: SessionId, conn: Arc<dyn WebDriverHttpClientSync>, config: WebDriverConfig, } impl WebDriverSession { pub fn new(session_id: SessionId, conn: Arc<dyn WebDriverHttpClientSync>) -> Self { Self { session_id, conn, config: WebDriverConfig::new(), } } pub fn session_id(&self) -> &SessionId { &self.session_id } pub fn config(&self) -> &WebDriverConfig { &self.config } pub fn config_mut(&mut self) -> &mut WebDriverConfig { &mut self.config } pub fn execute(&self, command: Command<'_>) -> WebDriverResult<serde_json::Value> { self.conn.execute(&self.session_id, command) } } impl WebDriverCommands for WebDriverSession { fn session(&self) -> &WebDriverSession { &self } }