-module(butterbee@webdriver). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/butterbee/webdriver.gleam"). -export([get_socket/1, get_context/1, get_config/1, get_state/1, new/0, with_context/2, with_config/2, with_state/2, with_socket/2, map_state/2, do/2]). -export_type([web_driver/1, empty/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC(" The webdriver module contains the WebDriver type and functions to create and configure webdriver sessions.\n"). -type web_driver(USN) :: {web_driver, gleam@option:option(butterbee@internal@socket:web_driver_socket()), gleam@option:option(butterbidi@browsing_context@types@browsing_context:browsing_context()), gleam@option:option(butterbee@config:butterbee_config()), {ok, USN} | {error, butterbee@internal@error:butterbee_error()}}. -type empty() :: empty. -file("src/butterbee/webdriver.gleam", 30). -spec get_socket(web_driver(any())) -> {ok, butterbee@internal@socket:web_driver_socket()} | {error, butterbee@internal@error:butterbee_error()}. get_socket(Driver) -> case erlang:element(2, Driver) of none -> {error, driver_does_not_have_socket}; {some, Socket} -> {ok, Socket} end. -file("src/butterbee/webdriver.gleam", 39). -spec get_context(web_driver(any())) -> {ok, butterbidi@browsing_context@types@browsing_context:browsing_context()} | {error, butterbee@internal@error:butterbee_error()}. get_context(Driver) -> case erlang:element(3, Driver) of none -> {error, driver_does_not_have_context}; {some, Context} -> {ok, Context} end. -file("src/butterbee/webdriver.gleam", 48). -spec get_config(web_driver(any())) -> {ok, butterbee@config:butterbee_config()} | {error, butterbee@internal@error:butterbee_error()}. get_config(Driver) -> case erlang:element(4, Driver) of none -> {error, driver_does_not_have_config}; {some, Config} -> {ok, Config} end. -file("src/butterbee/webdriver.gleam", 57). -spec get_state(web_driver(UTA)) -> {ok, UTA} | {error, butterbee@internal@error:butterbee_error()}. get_state(Webdriver) -> erlang:element(5, Webdriver). -file("src/butterbee/webdriver.gleam", 64). ?DOC(false). -spec new() -> web_driver(empty()). new() -> {web_driver, none, none, none, {ok, empty}}. -file("src/butterbee/webdriver.gleam", 69). ?DOC(false). -spec with_context( web_driver(UTF), butterbidi@browsing_context@types@browsing_context:browsing_context() ) -> web_driver(UTF). with_context(Webdriver, Context) -> {web_driver, erlang:element(2, Webdriver), {some, Context}, erlang:element(4, Webdriver), erlang:element(5, Webdriver)}. -file("src/butterbee/webdriver.gleam", 77). ?DOC(false). -spec with_config(web_driver(UTI), butterbee@config:butterbee_config()) -> web_driver(UTI). with_config(Webdriver, Config) -> {web_driver, erlang:element(2, Webdriver), erlang:element(3, Webdriver), {some, Config}, erlang:element(5, Webdriver)}. -file("src/butterbee/webdriver.gleam", 85). ?DOC(false). -spec with_state( web_driver(any()), {ok, UTN} | {error, butterbee@internal@error:butterbee_error()} ) -> web_driver(UTN). with_state(Webdriver, State) -> {web_driver, erlang:element(2, Webdriver), erlang:element(3, Webdriver), erlang:element(4, Webdriver), State}. -file("src/butterbee/webdriver.gleam", 93). ?DOC(false). -spec with_socket( web_driver(UTR), butterbee@internal@socket:web_driver_socket() ) -> web_driver(UTR). with_socket(Webdriver, Socket) -> {web_driver, {some, Socket}, erlang:element(3, Webdriver), erlang:element(4, Webdriver), erlang:element(5, Webdriver)}. -file("src/butterbee/webdriver.gleam", 101). ?DOC(false). -spec map_state( {ok, UTU} | {error, butterbee@internal@error:butterbee_error()}, web_driver(any()) ) -> web_driver(UTU). map_state(State, Webdriver) -> {web_driver, erlang:element(2, Webdriver), erlang:element(3, Webdriver), erlang:element(4, Webdriver), State}. -file("src/butterbee/webdriver.gleam", 110). ?DOC(false). -spec do(web_driver(UUA), fun((web_driver(UUA)) -> web_driver(UUD))) -> web_driver(UUD). do(Webdriver, Action) -> Action(Webdriver).