You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
obws/coverage/src/client/mod.rs.html

1 line
382 KiB
HTML

<!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='../../../style.css'></head><body><h2>Coverage Report</h2><h4>Created: 2022-07-04 16:17</h4><div class='centered'><table><div class='source-name-title'><pre>src/client/mod.rs</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source (<a href='#L66'>jump to first uncovered line</a>)</pre></td></td></tr><tr><td class='line-number'><a name='L1' href='#L1'><pre>1</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>//! The client to the obs-websocket API and main entry point.</pre></td></tr><tr><td class='line-number'><a name='L2' href='#L2'><pre>2</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3' href='#L3'><pre>3</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>#[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use std::sync::Weak;</pre></td></tr><tr><td class='line-number'><a name='L5' href='#L5'><pre>5</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use std::{</pre></td></tr><tr><td class='line-number'><a name='L6' href='#L6'><pre>6</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> future::Future,</pre></td></tr><tr><td class='line-number'><a name='L7' href='#L7'><pre>7</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> sync::{</pre></td></tr><tr><td class='line-number'><a name='L8' href='#L8'><pre>8</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> atomic::{AtomicU64, Ordering},</pre></td></tr><tr><td class='line-number'><a name='L9' href='#L9'><pre>9</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> Arc,</pre></td></tr><tr><td class='line-number'><a name='L10' href='#L10'><pre>10</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> },</pre></td></tr><tr><td class='line-number'><a name='L11' href='#L11'><pre>11</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>};</pre></td></tr><tr><td class='line-number'><a name='L12' href='#L12'><pre>12</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L13' href='#L13'><pre>13</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>#[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L14' href='#L14'><pre>14</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use futures_util::stream::Stream;</pre></td></tr><tr><td class='line-number'><a name='L15' href='#L15'><pre>15</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use futures_util::{</pre></td></tr><tr><td class='line-number'><a name='L16' href='#L16'><pre>16</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> sink::SinkExt,</pre></td></tr><tr><td class='line-number'><a name='L17' href='#L17'><pre>17</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> stream::{SplitSink, StreamExt},</pre></td></tr><tr><td class='line-number'><a name='L18' href='#L18'><pre>18</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>};</pre></td></tr><tr><td class='line-number'><a name='L19' href='#L19'><pre>19</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use semver::{Comparator, Op, Prerelease};</pre></td></tr><tr><td class='line-number'><a name='L20' href='#L20'><pre>20</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use serde::de::DeserializeOwned;</pre></td></tr><tr><td class='line-number'><a name='L21' href='#L21'><pre>21</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>#[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L22' href='#L22'><pre>22</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use tokio::sync::broadcast;</pre></td></tr><tr><td class='line-number'><a name='L23' href='#L23'><pre>23</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use tokio::{net::TcpStream, sync::Mutex, task::JoinHandle};</pre></td></tr><tr><td class='line-number'><a name='L24' href='#L24'><pre>24</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use tokio_tungstenite::{</pre></td></tr><tr><td class='line-number'><a name='L25' href='#L25'><pre>25</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> tungstenite::{protocol::CloseFrame, Message},</pre></td></tr><tr><td class='line-number'><a name='L26' href='#L26'><pre>26</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> MaybeTlsStream, WebSocketStream,</pre></td></tr><tr><td class='line-number'><a name='L27' href='#L27'><pre>27</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>};</pre></td></tr><tr><td class='line-number'><a name='L28' href='#L28'><pre>28</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use tracing::{debug, error, info, trace};</pre></td></tr><tr><td class='line-number'><a name='L29' href='#L29'><pre>29</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L30' href='#L30'><pre>30</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use self::connection::{ReceiverList, ReidentifyReceiverList};</pre></td></tr><tr><td class='line-number'><a name='L31' href='#L31'><pre>31</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>pub use self::{</pre></td></tr><tr><td class='line-number'><a name='L32' href='#L32'><pre>32</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> config::Config, connection::HandshakeError, filters::Filters, general::General,</pre></td></tr><tr><td class='line-number'><a name='L33' href='#L33'><pre>33</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> hotkeys::Hotkeys, inputs::Inputs, media_inputs::MediaInputs, outputs::Outputs,</pre></td></tr><tr><td class='line-number'><a name='L34' href='#L34'><pre>34</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> profiles::Profiles, recording::Recording, replay_buffer::ReplayBuffer,</pre></td></tr><tr><td class='line-number'><a name='L35' href='#L35'><pre>35</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> scene_collections::SceneCollections, scene_items::SceneItems, scenes::Scenes, sources::Sources,</pre></td></tr><tr><td class='line-number'><a name='L36' href='#L36'><pre>36</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> streaming::Streaming, transitions::Transitions, ui::Ui, virtual_cam::VirtualCam,</pre></td></tr><tr><td class='line-number'><a name='L37' href='#L37'><pre>37</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>};</pre></td></tr><tr><td class='line-number'><a name='L38' href='#L38'><pre>38</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>#[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L39' href='#L39'><pre>39</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use crate::events::Event;</pre></td></tr><tr><td class='line-number'><a name='L40' href='#L40'><pre>40</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>use crate::{</pre></td></tr><tr><td class='line-number'><a name='L41' href='#L41'><pre>41</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> requests::{ClientRequest, EventSubscription, Reidentify, Request, RequestType},</pre></td></tr><tr><td class='line-number'><a name='L42' href='#L42'><pre>42</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> responses::ServerMessage,</pre></td></tr><tr><td class='line-number'><a name='L43' href='#L43'><pre>43</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> Error, Result,</pre></td></tr><tr><td class='line-number'><a name='L44' href='#L44'><pre>44</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>};</pre></td></tr><tr><td class='line-number'><a name='L45' href='#L45'><pre>45</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L46' href='#L46'><pre>46</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod config;</pre></td></tr><tr><td class='line-number'><a name='L47' href='#L47'><pre>47</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod connection;</pre></td></tr><tr><td class='line-number'><a name='L48' href='#L48'><pre>48</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod filters;</pre></td></tr><tr><td class='line-number'><a name='L49' href='#L49'><pre>49</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod general;</pre></td></tr><tr><td class='line-number'><a name='L50' href='#L50'><pre>50</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod hotkeys;</pre></td></tr><tr><td class='line-number'><a name='L51' href='#L51'><pre>51</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod inputs;</pre></td></tr><tr><td class='line-number'><a name='L52' href='#L52'><pre>52</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod media_inputs;</pre></td></tr><tr><td class='line-number'><a name='L53' href='#L53'><pre>53</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod outputs;</pre></td></tr><tr><td class='line-number'><a name='L54' href='#L54'><pre>54</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod profiles;</pre></td></tr><tr><td class='line-number'><a name='L55' href='#L55'><pre>55</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod recording;</pre></td></tr><tr><td class='line-number'><a name='L56' href='#L56'><pre>56</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod replay_buffer;</pre></td></tr><tr><td class='line-number'><a name='L57' href='#L57'><pre>57</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod scene_collections;</pre></td></tr><tr><td class='line-number'><a name='L58' href='#L58'><pre>58</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod scene_items;</pre></td></tr><tr><td class='line-number'><a name='L59' href='#L59'><pre>59</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod scenes;</pre></td></tr><tr><td class='line-number'><a name='L60' href='#L60'><pre>60</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod sources;</pre></td></tr><tr><td class='line-number'><a name='L61' href='#L61'><pre>61</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod streaming;</pre></td></tr><tr><td class='line-number'><a name='L62' href='#L62'><pre>62</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod transitions;</pre></td></tr><tr><td class='line-number'><a name='L63' href='#L63'><pre>63</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod ui;</pre></td></tr><tr><td class='line-number'><a name='L64' href='#L64'><pre>64</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>mod virtual_cam;</pre></td></tr><tr><td class='line-number'><a name='L65' href='#L65'><pre>65</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L66' href='#L66'><pre>66</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre>#[derive(<span class='red'>D</span>ebu<span class='red'>g</span>, <span class='red'>t</span><span class='red'>hiserror::Erro</span><span class='red'>r</span>)]</pre><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::InnerError as core::fmt::Debug&gt;::fmt</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::InnerError as core::fmt::Debug&gt;::fmt</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::InnerError as core::fmt::Display&gt;::fmt</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::InnerError as std::error::Error&gt;::source</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::InnerError as std::error::Error&gt;::source</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::InnerError as core::fmt::Display&gt;::fmt</pre></div></div></td></tr><tr><td class='line-number'><a name='L67' href='#L67'><pre>67</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>enum InnerError {</pre></td></tr><tr><td class='line-number'><a name='L68' href='#L68'><pre>68</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[error(&quot;websocket message not convertible to text&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L69' href='#L69'><pre>69</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> IntoText(#[source] tokio_tungstenite::tungstenite::Error),</pre></td></tr><tr><td class='line-number'><a name='L70' href='#L70'><pre>70</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[error(&quot;failed deserializing message&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L71' href='#L71'><pre>71</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> DeserializeMessage(#[source] serde_json::Error),</pre></td></tr><tr><td class='line-number'><a name='L72' href='#L72'><pre>72</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[error(&quot;the request ID `{0}` is not an integer&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L73' href='#L73'><pre>73</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> InvalidRequestId(#[source] std::num::ParseIntError, String),</pre></td></tr><tr><td class='line-number'><a name='L74' href='#L74'><pre>74</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[error(&quot;received unexpected server message: {0:?}&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L75' href='#L75'><pre>75</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> UnexpectedMessage(ServerMessage),</pre></td></tr><tr><td class='line-number'><a name='L76' href='#L76'><pre>76</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L77' href='#L77'><pre>77</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L78' href='#L78'><pre>78</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>/// The client is the main entry point to access the obs-websocket API. It allows to call various</pre></td></tr><tr><td class='line-number'><a name='L79' href='#L79'><pre>79</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>/// functions to remote control an OBS instance as well as to listen to events caused by the user</pre></td></tr><tr><td class='line-number'><a name='L80' href='#L80'><pre>80</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>/// by interacting with OBS.</pre></td></tr><tr><td class='line-number'><a name='L81' href='#L81'><pre>81</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>pub struct Client {</pre></td></tr><tr><td class='line-number'><a name='L82' href='#L82'><pre>82</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// The writer handle to the web-socket stream.</pre></td></tr><tr><td class='line-number'><a name='L83' href='#L83'><pre>83</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> write: Mutex&lt;MessageWriter&gt;,</pre></td></tr><tr><td class='line-number'><a name='L84' href='#L84'><pre>84</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Global counter for requests that help to find out what response belongs to what previously</pre></td></tr><tr><td class='line-number'><a name='L85' href='#L85'><pre>85</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// sent request.</pre></td></tr><tr><td class='line-number'><a name='L86' href='#L86'><pre>86</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> id_counter: AtomicU64,</pre></td></tr><tr><td class='line-number'><a name='L87' href='#L87'><pre>87</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// A list of currently waiting requests to get a response back. The key is the string version</pre></td></tr><tr><td class='line-number'><a name='L88' href='#L88'><pre>88</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// of a request ID and the value is a oneshot sender that allows to send the response back to</pre></td></tr><tr><td class='line-number'><a name='L89' href='#L89'><pre>89</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// the other end that waits for the response.</pre></td></tr><tr><td class='line-number'><a name='L90' href='#L90'><pre>90</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> receivers: Arc&lt;ReceiverList&gt;,</pre></td></tr><tr><td class='line-number'><a name='L91' href='#L91'><pre>91</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// A list of awaiting [`Self::reidentify`] requests, waiting for confirmation. As</pre></td></tr><tr><td class='line-number'><a name='L92' href='#L92'><pre>92</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// these requests don&apos;t carry any kind of ID, they&apos;re handled sequentially and must be tracked</pre></td></tr><tr><td class='line-number'><a name='L93' href='#L93'><pre>93</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// separate from normal requests.</pre></td></tr><tr><td class='line-number'><a name='L94' href='#L94'><pre>94</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> reidentify_receivers: Arc&lt;ReidentifyReceiverList&gt;,</pre></td></tr><tr><td class='line-number'><a name='L95' href='#L95'><pre>95</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Broadcast sender that distributes received events to all current listeners. Events are</pre></td></tr><tr><td class='line-number'><a name='L96' href='#L96'><pre>96</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// dropped if nobody listens.</pre></td></tr><tr><td class='line-number'><a name='L97' href='#L97'><pre>97</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L98' href='#L98'><pre>98</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> event_sender: Weak&lt;broadcast::Sender&lt;Event&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L99' href='#L99'><pre>99</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Handle to the background task that receives messages and distributes them to waiting</pre></td></tr><tr><td class='line-number'><a name='L100' href='#L100'><pre>100</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// receivers and event listeners. It allows to shut down all the machinery once the client is</pre></td></tr><tr><td class='line-number'><a name='L101' href='#L101'><pre>101</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// no longer needed.</pre></td></tr><tr><td class='line-number'><a name='L102' href='#L102'><pre>102</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> handle: Option&lt;JoinHandle&lt;()&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L103' href='#L103'><pre>103</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L104' href='#L104'><pre>104</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L105' href='#L105'><pre>105</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>/// Shorthand for the writer side of a web-socket stream that has been split into reader and writer.</pre></td></tr><tr><td class='line-number'><a name='L106' href='#L106'><pre>106</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>type MessageWriter = SplitSink&lt;WebSocketStream&lt;MaybeTlsStream&lt;TcpStream&gt;&gt;, Message&gt;;</pre></td></tr><tr><td class='line-number'><a name='L107' href='#L107'><pre>107</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L108' href='#L108'><pre>108</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>/// Default broadcast capacity used when not overwritten by the user.</pre></td></tr><tr><td class='line-number'><a name='L109' href='#L109'><pre>109</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>#[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L110' href='#L110'><pre>110</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>const DEFAULT_CAPACITY: usize = 100;</pre></td></tr><tr><td class='line-number'><a name='L111' href='#L111'><pre>111</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L112' href='#L112'><pre>112</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>/// Configuration for connecting to a obs-websocket instance.</pre></td></tr><tr><td class='line-number'><a name='L113' href='#L113'><pre>113</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>pub struct ConnectConfig&lt;H, P&gt;</pre></td></tr><tr><td class='line-number'><a name='L114' href='#L114'><pre>114</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>where</pre></td></tr><tr><td class='line-number'><a name='L115' href='#L115'><pre>115</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> H: AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L116' href='#L116'><pre>116</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> P: AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L117' href='#L117'><pre>117</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>{</pre></td></tr><tr><td class='line-number'><a name='L118' href='#L118'><pre>118</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// The host name, usually `localhost` unless the OBS instance is on a remote machine.</pre></td></tr><tr><td class='line-number'><a name='L119' href='#L119'><pre>119</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pub host: H,</pre></td></tr><tr><td class='line-number'><a name='L120' href='#L120'><pre>120</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Port to connect to.</pre></td></tr><tr><td class='line-number'><a name='L121' href='#L121'><pre>121</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pub port: u16,</pre></td></tr><tr><td class='line-number'><a name='L122' href='#L122'><pre>122</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Optional password to authenticate against `obs-websocket`.</pre></td></tr><tr><td class='line-number'><a name='L123' href='#L123'><pre>123</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pub password: Option&lt;P&gt;,</pre></td></tr><tr><td class='line-number'><a name='L124' href='#L124'><pre>124</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Optional list of event subscriptions, controlling what events to receive. By default all</pre></td></tr><tr><td class='line-number'><a name='L125' href='#L125'><pre>125</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// events are listened to, with the exception of high volume events.</pre></td></tr><tr><td class='line-number'><a name='L126' href='#L126'><pre>126</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pub event_subscriptions: Option&lt;EventSubscription&gt;,</pre></td></tr><tr><td class='line-number'><a name='L127' href='#L127'><pre>127</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Whether to use TLS when connecting. Only useful when OBS runs on a remote machine.</pre></td></tr><tr><td class='line-number'><a name='L128' href='#L128'><pre>128</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;tls&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L129' href='#L129'><pre>129</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pub tls: bool,</pre></td></tr><tr><td class='line-number'><a name='L130' href='#L130'><pre>130</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Capacity of the broadcast channel for events. The default is `100` which should suffice.</pre></td></tr><tr><td class='line-number'><a name='L131' href='#L131'><pre>131</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// If the consumption of events takes a long time and the broadcast channel fills up faster</pre></td></tr><tr><td class='line-number'><a name='L132' href='#L132'><pre>132</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// than events are consumed, it will start dropping old messages from the queue and these will</pre></td></tr><tr><td class='line-number'><a name='L133' href='#L133'><pre>133</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// not be send to listeners anymore.</pre></td></tr><tr><td class='line-number'><a name='L134' href='#L134'><pre>134</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg_attr(not(feature = &quot;events&quot;), allow(dead_code))]</pre></td></tr><tr><td class='line-number'><a name='L135' href='#L135'><pre>135</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pub broadcast_capacity: Option&lt;usize&gt;,</pre></td></tr><tr><td class='line-number'><a name='L136' href='#L136'><pre>136</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L137' href='#L137'><pre>137</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L138' href='#L138'><pre>138</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>const OBS_STUDIO_VERSION: Comparator = Comparator {</pre></td></tr><tr><td class='line-number'><a name='L139' href='#L139'><pre>139</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> op: Op::GreaterEq,</pre></td></tr><tr><td class='line-number'><a name='L140' href='#L140'><pre>140</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> major: 27,</pre></td></tr><tr><td class='line-number'><a name='L141' href='#L141'><pre>141</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> minor: None,</pre></td></tr><tr><td class='line-number'><a name='L142' href='#L142'><pre>142</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> patch: None,</pre></td></tr><tr><td class='line-number'><a name='L143' href='#L143'><pre>143</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pre: Prerelease::EMPTY,</pre></td></tr><tr><td class='line-number'><a name='L144' href='#L144'><pre>144</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>};</pre></td></tr><tr><td class='line-number'><a name='L145' href='#L145'><pre>145</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>const OBS_WEBSOCKET_VERSION: Comparator = Comparator {</pre></td></tr><tr><td class='line-number'><a name='L146' href='#L146'><pre>146</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> op: Op::Caret,</pre></td></tr><tr><td class='line-number'><a name='L147' href='#L147'><pre>147</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> major: 5,</pre></td></tr><tr><td class='line-number'><a name='L148' href='#L148'><pre>148</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> minor: None,</pre></td></tr><tr><td class='line-number'><a name='L149' href='#L149'><pre>149</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> patch: None,</pre></td></tr><tr><td class='line-number'><a name='L150' href='#L150'><pre>150</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pre: Prerelease::EMPTY,</pre></td></tr><tr><td class='line-number'><a name='L151' href='#L151'><pre>151</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>};</pre></td></tr><tr><td class='line-number'><a name='L152' href='#L152'><pre>152</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>const RPC_VERSION: u32 = 1;</pre></td></tr><tr><td class='line-number'><a name='L153' href='#L153'><pre>153</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L154' href='#L154'><pre>154</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>impl&lt;H, P&gt; ConnectConfig&lt;H, P&gt;</pre></td></tr><tr><td class='line-number'><a name='L155' href='#L155'><pre>155</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>where</pre></td></tr><tr><td class='line-number'><a name='L156' href='#L156'><pre>156</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> H: AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L157' href='#L157'><pre>157</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> P: AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L158' href='#L158'><pre>158</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>{</pre></td></tr><tr><td class='line-number'><a name='L159' href='#L159'><pre>159</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;tls&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L160' href='#L160'><pre>160</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> fn tls(&amp;self) -&gt; bool {</pre></td></tr><tr><td class='line-number'><a name='L161' href='#L161'><pre>161</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> self.tls</pre></td></tr><tr><td class='line-number'><a name='L162' href='#L162'><pre>162</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::ConnectConfig&lt;alloc::string::String, alloc::string::String&gt;&gt;::tls</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L160' href='#L160'><pre>160</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> fn tls(&amp;self) -&gt; bool {</pre></td></tr><tr><td class='line-number'><a name='L161' href='#L161'><pre>161</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> self.tls</pre></td></tr><tr><td class='line-number'><a name='L162' href='#L162'><pre>162</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::ConnectConfig&lt;_, _&gt;&gt;::tls</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::ConnectConfig&lt;_, _&gt;&gt;::tls</pre></div></div></td></tr><tr><td class='line-number'><a name='L163' href='#L163'><pre>163</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L164' href='#L164'><pre>164</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(not(feature = &quot;tls&quot;))]</pre></td></tr><tr><td class='line-number'><a name='L165' href='#L165'><pre>165</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> fn tls(&amp;self) -&gt; bool {</pre></td></tr><tr><td class='line-number'><a name='L166' href='#L166'><pre>166</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> false</pre></td></tr><tr><td class='line-number'><a name='L167' href='#L167'><pre>167</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L168' href='#L168'><pre>168</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L169' href='#L169'><pre>169</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L170' href='#L170'><pre>170</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>impl Client {</pre></td></tr><tr><td class='line-number'><a name='L171' href='#L171'><pre>171</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Connect to a obs-websocket instance on the given host and port.</pre></td></tr><tr><td class='line-number'><a name='L172' href='#L172'><pre>172</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> pub async fn connect(</pre></td></tr><tr><td class='line-number'><a name='L173' href='#L173'><pre>173</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> host: impl AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L174' href='#L174'><pre>174</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> port: u16,</pre></td></tr><tr><td class='line-number'><a name='L175' href='#L175'><pre>175</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> password: Option&lt;impl AsRef&lt;str&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L176' href='#L176'><pre>176</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> ) -&gt; Result&lt;Self&gt; {</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::connect::&lt;alloc::string::String, alloc::string::String&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L172' href='#L172'><pre>172</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> pub async fn connect(</pre></td></tr><tr><td class='line-number'><a name='L173' href='#L173'><pre>173</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> host: impl AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L174' href='#L174'><pre>174</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> port: u16,</pre></td></tr><tr><td class='line-number'><a name='L175' href='#L175'><pre>175</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> password: Option&lt;impl AsRef&lt;str&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L176' href='#L176'><pre>176</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> ) -&gt; Result&lt;Self&gt; {</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect::&lt;_, _&gt;</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect::&lt;_, _&gt;</pre></div></div></td></tr><tr><td class='line-number'><a name='L177' href='#L177'><pre>177</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> Self::connect_with_config(ConnectConfig {</pre></td></tr><tr><td class='line-number'><a name='L178' href='#L178'><pre>178</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> host,</pre></td></tr><tr><td class='line-number'><a name='L179' href='#L179'><pre>179</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> port,</pre></td></tr><tr><td class='line-number'><a name='L180' href='#L180'><pre>180</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> password,</pre></td></tr><tr><td class='line-number'><a name='L181' href='#L181'><pre>181</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> event_subscriptions: None,</pre></td></tr><tr><td class='line-number'><a name='L182' href='#L182'><pre>182</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;tls&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L183' href='#L183'><pre>183</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> tls: false,</pre></td></tr><tr><td class='line-number'><a name='L184' href='#L184'><pre>184</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> broadcast_capacity: None,</pre></td></tr><tr><td class='line-number'><a name='L185' href='#L185'><pre>185</pre></a></td><td class='covered-line'><pre>113</pre></td><td class='code'><pre> })</pre></td></tr><tr><td class='line-number'><a name='L186' href='#L186'><pre>186</pre></a></td><td class='covered-line'><pre>113</pre></td><td class='code'><pre> .await</pre></td></tr><tr><td class='line-number'><a name='L187' href='#L187'><pre>187</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::connect::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L177' href='#L177'><pre>177</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> Self::connect_with_config(ConnectConfig {</pre></td></tr><tr><td class='line-number'><a name='L178' href='#L178'><pre>178</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> host,</pre></td></tr><tr><td class='line-number'><a name='L179' href='#L179'><pre>179</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> port,</pre></td></tr><tr><td class='line-number'><a name='L180' href='#L180'><pre>180</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> password,</pre></td></tr><tr><td class='line-number'><a name='L181' href='#L181'><pre>181</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> event_subscriptions: None,</pre></td></tr><tr><td class='line-number'><a name='L182' href='#L182'><pre>182</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;tls&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L183' href='#L183'><pre>183</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> tls: false,</pre></td></tr><tr><td class='line-number'><a name='L184' href='#L184'><pre>184</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> broadcast_capacity: None,</pre></td></tr><tr><td class='line-number'><a name='L185' href='#L185'><pre>185</pre></a></td><td class='covered-line'><pre>113</pre></td><td class='code'><pre> })</pre></td></tr><tr><td class='line-number'><a name='L186' href='#L186'><pre>186</pre></a></td><td class='covered-line'><pre>113</pre></td><td class='code'><pre> .await</pre></td></tr><tr><td class='line-number'><a name='L187' href='#L187'><pre>187</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect::&lt;_, _&gt;::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect::&lt;_, _&gt;::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L188' href='#L188'><pre>188</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L189' href='#L189'><pre>189</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Connect to a obs-websocket instance with the given configuration.</pre></td></tr><tr><td class='line-number'><a name='L190' href='#L190'><pre>190</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> pub async fn connect_with_config&lt;H, P&gt;(config: ConnectConfig&lt;H, P&gt;) -&gt; Result&lt;Self&gt;</pre></td></tr><tr><td class='line-number'><a name='L191' href='#L191'><pre>191</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L192' href='#L192'><pre>192</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> H: AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L193' href='#L193'><pre>193</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> P: AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L194' href='#L194'><pre>194</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> {</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L190' href='#L190'><pre>190</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> pub async fn connect_with_config&lt;H, P&gt;(config: ConnectConfig&lt;H, P&gt;) -&gt; Result&lt;Self&gt;</pre></td></tr><tr><td class='line-number'><a name='L191' href='#L191'><pre>191</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L192' href='#L192'><pre>192</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> H: AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L193' href='#L193'><pre>193</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> P: AsRef&lt;str&gt;,</pre></td></tr><tr><td class='line-number'><a name='L194' href='#L194'><pre>194</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;</pre></div></div></td></tr><tr><td class='line-number'><a name='L195' href='#L195'><pre>195</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let (socket, _) = tokio_tungstenite::connect_async(format!(</pre></td></tr><tr><td class='line-number'><a name='L196' href='#L196'><pre>196</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> &quot;{}://{}:{}&quot;,</pre></td></tr><tr><td class='line-number'><a name='L197' href='#L197'><pre>197</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> if config.tls() { <div class='tooltip'><span class='red'>&quot;wss&quot;</span><span class='tooltip-content'>0</span></div> } else { &quot;ws&quot; },</pre></td></tr><tr><td class='line-number'><a name='L198' href='#L198'><pre>198</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> config.host.as_ref(),</pre></td></tr><tr><td class='line-number'><a name='L199' href='#L199'><pre>199</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> config.port</pre></td></tr><tr><td class='line-number'><a name='L200' href='#L200'><pre>200</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> ))</pre></td></tr><tr><td class='line-number'><a name='L201' href='#L201'><pre>201</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> .await</pre></td></tr><tr><td class='line-number'><a name='L202' href='#L202'><pre>202</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> .map_err(Error::Connect)<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L203' href='#L203'><pre>203</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L204' href='#L204'><pre>204</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let (mut write, mut read) = socket.split();</pre></td></tr><tr><td class='line-number'><a name='L205' href='#L205'><pre>205</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L206' href='#L206'><pre>206</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let receivers = Arc::new(ReceiverList::default());</pre></td></tr><tr><td class='line-number'><a name='L207' href='#L207'><pre>207</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let receivers2 = Arc::clone(&amp;receivers);</pre></td></tr><tr><td class='line-number'><a name='L208' href='#L208'><pre>208</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L209' href='#L209'><pre>209</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let reidentify_receivers = Arc::new(ReidentifyReceiverList::default());</pre></td></tr><tr><td class='line-number'><a name='L210' href='#L210'><pre>210</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let reidentify_receivers2 = Arc::clone(&amp;reidentify_receivers);</pre></td></tr><tr><td class='line-number'><a name='L211' href='#L211'><pre>211</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L212' href='#L212'><pre>212</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L213' href='#L213'><pre>213</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let (event_sender, _) =</pre></td></tr><tr><td class='line-number'><a name='L214' href='#L214'><pre>214</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> broadcast::channel(config.broadcast_capacity.unwrap_or(DEFAULT_CAPACITY));</pre></td></tr><tr><td class='line-number'><a name='L215' href='#L215'><pre>215</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L216' href='#L216'><pre>216</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let event_sender = Arc::new(event_sender);</pre></td></tr><tr><td class='line-number'><a name='L217' href='#L217'><pre>217</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L218' href='#L218'><pre>218</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let events_tx = Arc::clone(&amp;event_sender);</pre></td></tr><tr><td class='line-number'><a name='L219' href='#L219'><pre>219</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L220' href='#L220'><pre>220</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> self::connection::handshake(</pre></td></tr><tr><td class='line-number'><a name='L221' href='#L221'><pre>221</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> &amp;mut write,</pre></td></tr><tr><td class='line-number'><a name='L222' href='#L222'><pre>222</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> &amp;mut read,</pre></td></tr><tr><td class='line-number'><a name='L223' href='#L223'><pre>223</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> config.password.as_ref().map(AsRef::as_ref),</pre></td></tr><tr><td class='line-number'><a name='L224' href='#L224'><pre>224</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> config.event_subscriptions,</pre></td></tr><tr><td class='line-number'><a name='L225' href='#L225'><pre>225</pre></a></td><td class='covered-line'><pre>23</pre></td><td class='code'><pre> )</pre></td></tr><tr><td class='line-number'><a name='L226' href='#L226'><pre>226</pre></a></td><td class='covered-line'><pre>23</pre></td><td class='code'><pre> .await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L227' href='#L227'><pre>227</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L228' href='#L228'><pre>228</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let handle = tokio::spawn(async move {</pre></td></tr><tr><td class='line-number'><a name='L229' href='#L229'><pre>229</pre></a></td><td class='covered-line'><pre>606</pre></td><td class='code'><pre> while let Some(Ok(<div class='tooltip'>msg<span class='tooltip-content'>588</span></div>)) = read.next()<div class='tooltip'>.await<span class='tooltip-content'>420</span></div> {</pre></td></tr><tr><td class='line-number'><a name='L230' href='#L230'><pre>230</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> if let Message::Close(<div class='tooltip'><span class='red'>info</span><span class='tooltip-content'>0</span></div>) = &amp;msg {</pre></td></tr><tr><td class='line-number'><a name='L231' href='#L231'><pre>231</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> if let Some(CloseFrame { <span class='red'>reason</span>, .. }) = <span class='red'>info</span> {</pre></td></tr><tr><td class='line-number'><a name='L232' href='#L232'><pre>232</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>info!</span><span class='red'>(%reason, </span><span class='red'>&quot;connection closed with reason&quot;</span><span class='red'>)</span>;</pre><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}::{closure#0}::{closure#1}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#1}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#1}</pre></div></div></td></tr><tr><td class='line-number'><a name='L233' href='#L233'><pre>233</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> }<span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L234' href='#L234'><pre>234</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L235' href='#L235'><pre>235</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L236' href='#L236'><pre>236</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>events_tx.send(Event::ServerStopping).ok();</span></pre></td></tr><tr><td class='line-number'><a name='L237' href='#L237'><pre>237</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> continue</span>;</pre></td></tr><tr><td class='line-number'><a name='L238' href='#L238'><pre>238</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L239' href='#L239'><pre>239</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L240' href='#L240'><pre>240</pre></a></td><td class='covered-line'><pre>1.17k</pre></td><td class='code'><pre> let <div class='tooltip'>res: Result&lt;(), InnerError&gt;<span class='tooltip-content'>588</span></div> = async {</pre></td></tr><tr><td class='line-number'><a name='L241' href='#L241'><pre>241</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> let text = msg.into_text().map_err(InnerError::IntoText)<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L242' href='#L242'><pre>242</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L243' href='#L243'><pre>243</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> let message = serde_json::from_str::&lt;ServerMessage&gt;(&amp;text)</pre></td></tr><tr><td class='line-number'><a name='L244' href='#L244'><pre>244</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> .map_err(InnerError::DeserializeMessage)<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L245' href='#L245'><pre>245</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L246' href='#L246'><pre>246</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> match message {</pre></td></tr><tr><td class='line-number'><a name='L247' href='#L247'><pre>247</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> ServerMessage::RequestResponse(response) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L248' href='#L248'><pre>248</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> trace!(</pre></td></tr><tr><td class='line-number'><a name='L249' href='#L249'><pre>249</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> id = %response.id,</pre></td></tr><tr><td class='line-number'><a name='L250' href='#L250'><pre>250</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> status = ?response.status,</pre></td></tr><tr><td class='line-number'><a name='L251' href='#L251'><pre>251</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> data = %response.data,</pre></td></tr><tr><td class='line-number'><a name='L252' href='#L252'><pre>252</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> &quot;got request-response message&quot;,</pre></td></tr><tr><td class='line-number'><a name='L253' href='#L253'><pre>253</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> );</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L248' href='#L248'><pre>248</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> trace!(</pre></td></tr><tr><td class='line-number'><a name='L249' href='#L249'><pre>249</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> id = %response.id,</pre></td></tr><tr><td class='line-number'><a name='L250' href='#L250'><pre>250</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> status = ?response.status,</pre></td></tr><tr><td class='line-number'><a name='L251' href='#L251'><pre>251</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> data = %response.data,</pre></td></tr><tr><td class='line-number'><a name='L252' href='#L252'><pre>252</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> &quot;got request-response message&quot;,</pre></td></tr><tr><td class='line-number'><a name='L253' href='#L253'><pre>253</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> );</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L254' href='#L254'><pre>254</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> receivers2.notify(response)<div class='tooltip'><span class='red'>.await</span><span class='tooltip-content'>0</span></div><div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L255' href='#L255'><pre>255</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L256' href='#L256'><pre>256</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L257' href='#L257'><pre>257</pre></a></td><td class='covered-line'><pre>242</pre></td><td class='code'><pre> ServerMessage::Event(event) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L258' href='#L258'><pre>258</pre></a></td><td class='covered-line'><pre>242</pre></td><td class='code'><pre> trace!(?event, &quot;got OBS event&quot;);</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#1}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L258' href='#L258'><pre>258</pre></a></td><td class='covered-line'><pre>242</pre></td><td class='code'><pre> trace!(?event, &quot;got OBS event&quot;);</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#1}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#1}</pre></div></div></td></tr><tr><td class='line-number'><a name='L259' href='#L259'><pre>259</pre></a></td><td class='covered-line'><pre>242</pre></td><td class='code'><pre> events_tx.send(event).ok();</pre></td></tr><tr><td class='line-number'><a name='L260' href='#L260'><pre>260</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L261' href='#L261'><pre>261</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> ServerMessage::Identified(<span class='red'>identified) =&gt; {</span></pre></td></tr><tr><td class='line-number'><a name='L262' href='#L262'><pre>262</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> </span><span class='red'>trace!</span><span class='red'>(?identified, </span><span class='red'>&quot;got identified message&quot;</span><span class='red'>)</span>;</pre><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#2}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#2}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#0}::{closure#2}</pre></div></div></td></tr><tr><td class='line-number'><a name='L263' href='#L263'><pre>263</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>reidentify_receivers2.notify(identified)</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L264' href='#L264'><pre>264</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L265' href='#L265'><pre>265</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> _ =&gt; return <span class='red'>Err(InnerError::UnexpectedMessage(message))</span>,</pre></td></tr><tr><td class='line-number'><a name='L266' href='#L266'><pre>266</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L267' href='#L267'><pre>267</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L268' href='#L268'><pre>268</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> Ok(())</pre></td></tr><tr><td class='line-number'><a name='L269' href='#L269'><pre>269</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> }<span class='red'></span></pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}::{closure#0}::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L240' href='#L240'><pre>240</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> let res: Result&lt;(), InnerError&gt; = async {</pre></td></tr><tr><td class='line-number'><a name='L241' href='#L241'><pre>241</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> let text = msg.into_text().map_err(InnerError::IntoText)<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L242' href='#L242'><pre>242</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L243' href='#L243'><pre>243</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> let message = serde_json::from_str::&lt;ServerMessage&gt;(&amp;text)</pre></td></tr><tr><td class='line-number'><a name='L244' href='#L244'><pre>244</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> .map_err(InnerError::DeserializeMessage)<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L245' href='#L245'><pre>245</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L246' href='#L246'><pre>246</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> match message {</pre></td></tr><tr><td class='line-number'><a name='L247' href='#L247'><pre>247</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> ServerMessage::RequestResponse(response) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L248' href='#L248'><pre>248</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> trace!(</pre></td></tr><tr><td class='line-number'><a name='L249' href='#L249'><pre>249</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> id = %response.id,</pre></td></tr><tr><td class='line-number'><a name='L250' href='#L250'><pre>250</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> status = ?response.status,</pre></td></tr><tr><td class='line-number'><a name='L251' href='#L251'><pre>251</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> data = %response.data,</pre></td></tr><tr><td class='line-number'><a name='L252' href='#L252'><pre>252</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> &quot;got request-response message&quot;,</pre></td></tr><tr><td class='line-number'><a name='L253' href='#L253'><pre>253</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L254' href='#L254'><pre>254</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> receivers2.notify(response)<div class='tooltip'><span class='red'>.await</span><span class='tooltip-content'>0</span></div><div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L255' href='#L255'><pre>255</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L256' href='#L256'><pre>256</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L257' href='#L257'><pre>257</pre></a></td><td class='covered-line'><pre>242</pre></td><td class='code'><pre> ServerMessage::Event(event) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L258' href='#L258'><pre>258</pre></a></td><td class='covered-line'><pre>242</pre></td><td class='code'><pre> trace!(?event, &quot;got OBS event&quot;);</pre></td></tr><tr><td class='line-number'><a name='L259' href='#L259'><pre>259</pre></a></td><td class='covered-line'><pre>242</pre></td><td class='code'><pre> events_tx.send(event).ok();</pre></td></tr><tr><td class='line-number'><a name='L260' href='#L260'><pre>260</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L261' href='#L261'><pre>261</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> ServerMessage::Identified(<span class='red'>identified) =&gt; {</span></pre></td></tr><tr><td class='line-number'><a name='L262' href='#L262'><pre>262</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> trace!</span>(?identified, <span class='red'>&quot;got identified message&quot;</span>);</pre></td></tr><tr><td class='line-number'><a name='L263' href='#L263'><pre>263</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>reidentify_receivers2.notify(identified)</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L264' href='#L264'><pre>264</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L265' href='#L265'><pre>265</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> _ =&gt; return <span class='red'>Err(InnerError::UnexpectedMessage(message))</span>,</pre></td></tr><tr><td class='line-number'><a name='L266' href='#L266'><pre>266</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L267' href='#L267'><pre>267</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L268' href='#L268'><pre>268</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> Ok(())</pre></td></tr><tr><td class='line-number'><a name='L269' href='#L269'><pre>269</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L270' href='#L270'><pre>270</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .await</span>;</pre></td></tr><tr><td class='line-number'><a name='L271' href='#L271'><pre>271</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L272' href='#L272'><pre>272</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> if let Err(<div class='tooltip'><span class='red'>error</span><span class='tooltip-content'>0</span></div>) = res {</pre></td></tr><tr><td class='line-number'><a name='L273' href='#L273'><pre>273</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>error!</span><span class='red'>(?error, </span><span class='red'>&quot;failed handling message&quot;</span><span class='red'>)</span>;</pre><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}::{closure#0}::{closure#2}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#2}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}::{closure#2}</pre></div></div></td></tr><tr><td class='line-number'><a name='L274' href='#L274'><pre>274</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L275' href='#L275'><pre>275</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L276' href='#L276'><pre>276</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L277' href='#L277'><pre>277</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L278' href='#L278'><pre>278</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>events_tx.send(Event::ServerStopped).ok();</span></pre></td></tr><tr><td class='line-number'><a name='L279' href='#L279'><pre>279</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L280' href='#L280'><pre>280</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> // clear all outstanding receivers to stop them from waiting forever on responses</span></pre></td></tr><tr><td class='line-number'><a name='L281' href='#L281'><pre>281</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> // they&apos;ll never receive.</span></pre></td></tr><tr><td class='line-number'><a name='L282' href='#L282'><pre>282</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> receivers2.reset()</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L283' href='#L283'><pre>283</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>reidentify_receivers2.reset()</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L284' href='#L284'><pre>284</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> <div class='tooltip'><span class='red'>}</span><span class='tooltip-content'>0</span></div>);</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L228' href='#L228'><pre>228</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let handle = tokio::spawn(async move {</pre></td></tr><tr><td class='line-number'><a name='L229' href='#L229'><pre>229</pre></a></td><td class='covered-line'><pre>606</pre></td><td class='code'><pre> while let Some(Ok(<div class='tooltip'>msg<span class='tooltip-content'>588</span></div>)) = read.next()<div class='tooltip'>.await<span class='tooltip-content'>420</span></div> {</pre></td></tr><tr><td class='line-number'><a name='L230' href='#L230'><pre>230</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> if let Message::Close(<div class='tooltip'><span class='red'>info</span><span class='tooltip-content'>0</span></div>) = &amp;msg {</pre></td></tr><tr><td class='line-number'><a name='L231' href='#L231'><pre>231</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> if let Some(CloseFrame { <span class='red'>reason</span>, .. }) = <span class='red'>info</span> {</pre></td></tr><tr><td class='line-number'><a name='L232' href='#L232'><pre>232</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>info!</span>(%reason, <span class='red'>&quot;connection closed with reason&quot;</span>);</pre></td></tr><tr><td class='line-number'><a name='L233' href='#L233'><pre>233</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> }<span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L234' href='#L234'><pre>234</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L235' href='#L235'><pre>235</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L236' href='#L236'><pre>236</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>events_tx.send(Event::ServerStopping).ok();</span></pre></td></tr><tr><td class='line-number'><a name='L237' href='#L237'><pre>237</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> continue</span>;</pre></td></tr><tr><td class='line-number'><a name='L238' href='#L238'><pre>238</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L239' href='#L239'><pre>239</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L240' href='#L240'><pre>240</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> let res: Result&lt;(), InnerError&gt; = async {</pre></td></tr><tr><td class='line-number'><a name='L241' href='#L241'><pre>241</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> let text = msg.into_text().map_err(InnerError::IntoText)?;</pre></td></tr><tr><td class='line-number'><a name='L242' href='#L242'><pre>242</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L243' href='#L243'><pre>243</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> let message = serde_json::from_str::&lt;ServerMessage&gt;(&amp;text)</pre></td></tr><tr><td class='line-number'><a name='L244' href='#L244'><pre>244</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> .map_err(InnerError::DeserializeMessage)?;</pre></td></tr><tr><td class='line-number'><a name='L245' href='#L245'><pre>245</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L246' href='#L246'><pre>246</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> match message {</pre></td></tr><tr><td class='line-number'><a name='L247' href='#L247'><pre>247</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ServerMessage::RequestResponse(response) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L248' href='#L248'><pre>248</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> trace!(</pre></td></tr><tr><td class='line-number'><a name='L249' href='#L249'><pre>249</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> id = %response.id,</pre></td></tr><tr><td class='line-number'><a name='L250' href='#L250'><pre>250</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> status = ?response.status,</pre></td></tr><tr><td class='line-number'><a name='L251' href='#L251'><pre>251</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> data = %response.data,</pre></td></tr><tr><td class='line-number'><a name='L252' href='#L252'><pre>252</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> &quot;got request-response message&quot;,</pre></td></tr><tr><td class='line-number'><a name='L253' href='#L253'><pre>253</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L254' href='#L254'><pre>254</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> receivers2.notify(response).await?;</pre></td></tr><tr><td class='line-number'><a name='L255' href='#L255'><pre>255</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L256' href='#L256'><pre>256</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L257' href='#L257'><pre>257</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ServerMessage::Event(event) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L258' href='#L258'><pre>258</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> trace!(?event, &quot;got OBS event&quot;);</pre></td></tr><tr><td class='line-number'><a name='L259' href='#L259'><pre>259</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> events_tx.send(event).ok();</pre></td></tr><tr><td class='line-number'><a name='L260' href='#L260'><pre>260</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L261' href='#L261'><pre>261</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ServerMessage::Identified(identified) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L262' href='#L262'><pre>262</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> trace!(?identified, &quot;got identified message&quot;);</pre></td></tr><tr><td class='line-number'><a name='L263' href='#L263'><pre>263</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> reidentify_receivers2.notify(identified).await;</pre></td></tr><tr><td class='line-number'><a name='L264' href='#L264'><pre>264</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L265' href='#L265'><pre>265</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> _ =&gt; return Err(InnerError::UnexpectedMessage(message)),</pre></td></tr><tr><td class='line-number'><a name='L266' href='#L266'><pre>266</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L267' href='#L267'><pre>267</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L268' href='#L268'><pre>268</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> Ok(())</pre></td></tr><tr><td class='line-number'><a name='L269' href='#L269'><pre>269</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> }<span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L270' href='#L270'><pre>270</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .await</span>;</pre></td></tr><tr><td class='line-number'><a name='L271' href='#L271'><pre>271</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L272' href='#L272'><pre>272</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> if let Err(<div class='tooltip'><span class='red'>error</span><span class='tooltip-content'>0</span></div>) = res {</pre></td></tr><tr><td class='line-number'><a name='L273' href='#L273'><pre>273</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>error!</span>(?error, <span class='red'>&quot;failed handling message&quot;</span>);</pre></td></tr><tr><td class='line-number'><a name='L274' href='#L274'><pre>274</pre></a></td><td class='covered-line'><pre>588</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L275' href='#L275'><pre>275</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L276' href='#L276'><pre>276</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L277' href='#L277'><pre>277</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L278' href='#L278'><pre>278</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>events_tx.send(Event::ServerStopped).ok();</span></pre></td></tr><tr><td class='line-number'><a name='L279' href='#L279'><pre>279</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L280' href='#L280'><pre>280</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> // clear all outstanding receivers to stop them from waiting forever on responses</span></pre></td></tr><tr><td class='line-number'><a name='L281' href='#L281'><pre>281</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> // they&apos;ll never receive.</span></pre></td></tr><tr><td class='line-number'><a name='L282' href='#L282'><pre>282</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> receivers2.reset()</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L283' href='#L283'><pre>283</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>reidentify_receivers2.reset()</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L284' href='#L284'><pre>284</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>}</span>);</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L285' href='#L285'><pre>285</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L286' href='#L286'><pre>286</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let write = Mutex::new(write);</pre></td></tr><tr><td class='line-number'><a name='L287' href='#L287'><pre>287</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let id_counter = AtomicU64::new(1);</pre></td></tr><tr><td class='line-number'><a name='L288' href='#L288'><pre>288</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L289' href='#L289'><pre>289</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let client = Self {</pre></td></tr><tr><td class='line-number'><a name='L290' href='#L290'><pre>290</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> write,</pre></td></tr><tr><td class='line-number'><a name='L291' href='#L291'><pre>291</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> id_counter,</pre></td></tr><tr><td class='line-number'><a name='L292' href='#L292'><pre>292</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> receivers,</pre></td></tr><tr><td class='line-number'><a name='L293' href='#L293'><pre>293</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> reidentify_receivers,</pre></td></tr><tr><td class='line-number'><a name='L294' href='#L294'><pre>294</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L295' href='#L295'><pre>295</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> event_sender: Arc::downgrade(&amp;event_sender),</pre></td></tr><tr><td class='line-number'><a name='L296' href='#L296'><pre>296</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> handle: Some(handle),</pre></td></tr><tr><td class='line-number'><a name='L297' href='#L297'><pre>297</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L298' href='#L298'><pre>298</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L299' href='#L299'><pre>299</pre></a></td><td class='covered-line'><pre>36</pre></td><td class='code'><pre> client.verify_versions().await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L300' href='#L300'><pre>300</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L301' href='#L301'><pre>301</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> Ok(client)</pre></td></tr><tr><td class='line-number'><a name='L302' href='#L302'><pre>302</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::connect_with_config::&lt;alloc::string::String, alloc::string::String&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L195' href='#L195'><pre>195</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let (socket, _) = tokio_tungstenite::connect_async(format!(</pre></td></tr><tr><td class='line-number'><a name='L196' href='#L196'><pre>196</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> &quot;{}://{}:{}&quot;,</pre></td></tr><tr><td class='line-number'><a name='L197' href='#L197'><pre>197</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> if config.tls() { <div class='tooltip'><span class='red'>&quot;wss&quot;</span><span class='tooltip-content'>0</span></div> } else { &quot;ws&quot; },</pre></td></tr><tr><td class='line-number'><a name='L198' href='#L198'><pre>198</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> config.host.as_ref(),</pre></td></tr><tr><td class='line-number'><a name='L199' href='#L199'><pre>199</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> config.port</pre></td></tr><tr><td class='line-number'><a name='L200' href='#L200'><pre>200</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> ))</pre></td></tr><tr><td class='line-number'><a name='L201' href='#L201'><pre>201</pre></a></td><td class='covered-line'><pre>54</pre></td><td class='code'><pre> .await</pre></td></tr><tr><td class='line-number'><a name='L202' href='#L202'><pre>202</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> .map_err(Error::Connect)<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L203' href='#L203'><pre>203</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L204' href='#L204'><pre>204</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let (mut write, mut read) = socket.split();</pre></td></tr><tr><td class='line-number'><a name='L205' href='#L205'><pre>205</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L206' href='#L206'><pre>206</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let receivers = Arc::new(ReceiverList::default());</pre></td></tr><tr><td class='line-number'><a name='L207' href='#L207'><pre>207</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let receivers2 = Arc::clone(&amp;receivers);</pre></td></tr><tr><td class='line-number'><a name='L208' href='#L208'><pre>208</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L209' href='#L209'><pre>209</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let reidentify_receivers = Arc::new(ReidentifyReceiverList::default());</pre></td></tr><tr><td class='line-number'><a name='L210' href='#L210'><pre>210</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let reidentify_receivers2 = Arc::clone(&amp;reidentify_receivers);</pre></td></tr><tr><td class='line-number'><a name='L211' href='#L211'><pre>211</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L212' href='#L212'><pre>212</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L213' href='#L213'><pre>213</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let (event_sender, _) =</pre></td></tr><tr><td class='line-number'><a name='L214' href='#L214'><pre>214</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> broadcast::channel(config.broadcast_capacity.unwrap_or(DEFAULT_CAPACITY));</pre></td></tr><tr><td class='line-number'><a name='L215' href='#L215'><pre>215</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L216' href='#L216'><pre>216</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let event_sender = Arc::new(event_sender);</pre></td></tr><tr><td class='line-number'><a name='L217' href='#L217'><pre>217</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L218' href='#L218'><pre>218</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let events_tx = Arc::clone(&amp;event_sender);</pre></td></tr><tr><td class='line-number'><a name='L219' href='#L219'><pre>219</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L220' href='#L220'><pre>220</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> self::connection::handshake(</pre></td></tr><tr><td class='line-number'><a name='L221' href='#L221'><pre>221</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> &amp;mut write,</pre></td></tr><tr><td class='line-number'><a name='L222' href='#L222'><pre>222</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> &amp;mut read,</pre></td></tr><tr><td class='line-number'><a name='L223' href='#L223'><pre>223</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> config.password.as_ref().map(AsRef::as_ref),</pre></td></tr><tr><td class='line-number'><a name='L224' href='#L224'><pre>224</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> config.event_subscriptions,</pre></td></tr><tr><td class='line-number'><a name='L225' href='#L225'><pre>225</pre></a></td><td class='covered-line'><pre>23</pre></td><td class='code'><pre> )</pre></td></tr><tr><td class='line-number'><a name='L226' href='#L226'><pre>226</pre></a></td><td class='covered-line'><pre>23</pre></td><td class='code'><pre> .await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L227' href='#L227'><pre>227</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L228' href='#L228'><pre>228</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let handle = tokio::spawn(async move {</pre></td></tr><tr><td class='line-number'><a name='L229' href='#L229'><pre>229</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> while let Some(Ok(msg)) = read.next().await {</pre></td></tr><tr><td class='line-number'><a name='L230' href='#L230'><pre>230</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> if let Message::Close(info) = &amp;msg {</pre></td></tr><tr><td class='line-number'><a name='L231' href='#L231'><pre>231</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> if let Some(CloseFrame { reason, .. }) = info {</pre></td></tr><tr><td class='line-number'><a name='L232' href='#L232'><pre>232</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> info!(%reason, &quot;connection closed with reason&quot;);</pre></td></tr><tr><td class='line-number'><a name='L233' href='#L233'><pre>233</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L234' href='#L234'><pre>234</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L235' href='#L235'><pre>235</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L236' href='#L236'><pre>236</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> events_tx.send(Event::ServerStopping).ok();</pre></td></tr><tr><td class='line-number'><a name='L237' href='#L237'><pre>237</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> continue;</pre></td></tr><tr><td class='line-number'><a name='L238' href='#L238'><pre>238</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L239' href='#L239'><pre>239</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L240' href='#L240'><pre>240</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> let res: Result&lt;(), InnerError&gt; = async {</pre></td></tr><tr><td class='line-number'><a name='L241' href='#L241'><pre>241</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> let text = msg.into_text().map_err(InnerError::IntoText)?;</pre></td></tr><tr><td class='line-number'><a name='L242' href='#L242'><pre>242</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L243' href='#L243'><pre>243</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> let message = serde_json::from_str::&lt;ServerMessage&gt;(&amp;text)</pre></td></tr><tr><td class='line-number'><a name='L244' href='#L244'><pre>244</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> .map_err(InnerError::DeserializeMessage)?;</pre></td></tr><tr><td class='line-number'><a name='L245' href='#L245'><pre>245</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L246' href='#L246'><pre>246</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> match message {</pre></td></tr><tr><td class='line-number'><a name='L247' href='#L247'><pre>247</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ServerMessage::RequestResponse(response) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L248' href='#L248'><pre>248</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> trace!(</pre></td></tr><tr><td class='line-number'><a name='L249' href='#L249'><pre>249</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> id = %response.id,</pre></td></tr><tr><td class='line-number'><a name='L250' href='#L250'><pre>250</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> status = ?response.status,</pre></td></tr><tr><td class='line-number'><a name='L251' href='#L251'><pre>251</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> data = %response.data,</pre></td></tr><tr><td class='line-number'><a name='L252' href='#L252'><pre>252</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> &quot;got request-response message&quot;,</pre></td></tr><tr><td class='line-number'><a name='L253' href='#L253'><pre>253</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> );</pre></td></tr><tr><td class='line-number'><a name='L254' href='#L254'><pre>254</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> receivers2.notify(response).await?;</pre></td></tr><tr><td class='line-number'><a name='L255' href='#L255'><pre>255</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L256' href='#L256'><pre>256</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L257' href='#L257'><pre>257</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ServerMessage::Event(event) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L258' href='#L258'><pre>258</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> trace!(?event, &quot;got OBS event&quot;);</pre></td></tr><tr><td class='line-number'><a name='L259' href='#L259'><pre>259</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> events_tx.send(event).ok();</pre></td></tr><tr><td class='line-number'><a name='L260' href='#L260'><pre>260</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L261' href='#L261'><pre>261</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ServerMessage::Identified(identified) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L262' href='#L262'><pre>262</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> trace!(?identified, &quot;got identified message&quot;);</pre></td></tr><tr><td class='line-number'><a name='L263' href='#L263'><pre>263</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> reidentify_receivers2.notify(identified).await;</pre></td></tr><tr><td class='line-number'><a name='L264' href='#L264'><pre>264</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L265' href='#L265'><pre>265</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> _ =&gt; return Err(InnerError::UnexpectedMessage(message)),</pre></td></tr><tr><td class='line-number'><a name='L266' href='#L266'><pre>266</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L267' href='#L267'><pre>267</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L268' href='#L268'><pre>268</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> Ok(())</pre></td></tr><tr><td class='line-number'><a name='L269' href='#L269'><pre>269</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L270' href='#L270'><pre>270</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> .await;</pre></td></tr><tr><td class='line-number'><a name='L271' href='#L271'><pre>271</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L272' href='#L272'><pre>272</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> if let Err(error) = res {</pre></td></tr><tr><td class='line-number'><a name='L273' href='#L273'><pre>273</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> error!(?error, &quot;failed handling message&quot;);</pre></td></tr><tr><td class='line-number'><a name='L274' href='#L274'><pre>274</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L275' href='#L275'><pre>275</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L276' href='#L276'><pre>276</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L277' href='#L277'><pre>277</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L278' href='#L278'><pre>278</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> events_tx.send(Event::ServerStopped).ok();</pre></td></tr><tr><td class='line-number'><a name='L279' href='#L279'><pre>279</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L280' href='#L280'><pre>280</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> // clear all outstanding receivers to stop them from waiting forever on responses</pre></td></tr><tr><td class='line-number'><a name='L281' href='#L281'><pre>281</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> // they&apos;ll never receive.</pre></td></tr><tr><td class='line-number'><a name='L282' href='#L282'><pre>282</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> receivers2.reset().await;</pre></td></tr><tr><td class='line-number'><a name='L283' href='#L283'><pre>283</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> reidentify_receivers2.reset().await;</pre></td></tr><tr><td class='line-number'><a name='L284' href='#L284'><pre>284</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> });</pre></td></tr><tr><td class='line-number'><a name='L285' href='#L285'><pre>285</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L286' href='#L286'><pre>286</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let write = Mutex::new(write);</pre></td></tr><tr><td class='line-number'><a name='L287' href='#L287'><pre>287</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let id_counter = AtomicU64::new(1);</pre></td></tr><tr><td class='line-number'><a name='L288' href='#L288'><pre>288</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L289' href='#L289'><pre>289</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let client = Self {</pre></td></tr><tr><td class='line-number'><a name='L290' href='#L290'><pre>290</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> write,</pre></td></tr><tr><td class='line-number'><a name='L291' href='#L291'><pre>291</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> id_counter,</pre></td></tr><tr><td class='line-number'><a name='L292' href='#L292'><pre>292</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> receivers,</pre></td></tr><tr><td class='line-number'><a name='L293' href='#L293'><pre>293</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> reidentify_receivers,</pre></td></tr><tr><td class='line-number'><a name='L294' href='#L294'><pre>294</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L295' href='#L295'><pre>295</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> event_sender: Arc::downgrade(&amp;event_sender),</pre></td></tr><tr><td class='line-number'><a name='L296' href='#L296'><pre>296</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> handle: Some(handle),</pre></td></tr><tr><td class='line-number'><a name='L297' href='#L297'><pre>297</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> };</pre></td></tr><tr><td class='line-number'><a name='L298' href='#L298'><pre>298</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L299' href='#L299'><pre>299</pre></a></td><td class='covered-line'><pre>36</pre></td><td class='code'><pre> client.verify_versions().await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L300' href='#L300'><pre>300</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L301' href='#L301'><pre>301</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> Ok(client)</pre></td></tr><tr><td class='line-number'><a name='L302' href='#L302'><pre>302</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::connect_with_config::&lt;_, _&gt;::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L303' href='#L303'><pre>303</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L304' href='#L304'><pre>304</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> async fn verify_versions(&amp;self) -&gt; Result&lt;()&gt; {</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::verify_versions</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L304' href='#L304'><pre>304</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> async fn verify_versions(&amp;self) -&gt; Result&lt;()&gt; {</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::verify_versions</pre></div></div></td></tr><tr><td class='line-number'><a name='L305' href='#L305'><pre>305</pre></a></td><td class='covered-line'><pre>36</pre></td><td class='code'><pre> let <div class='tooltip'>mut version<span class='tooltip-content'>18</span></div> = <div class='tooltip'>self.general().version()<span class='tooltip-content'>18</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L306' href='#L306'><pre>306</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> // TODO: remove this after the official v5 release.</pre></td></tr><tr><td class='line-number'><a name='L307' href='#L307'><pre>307</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> // Current builds have prerelease info (like 5.0.0-91cabe1-git).</pre></td></tr><tr><td class='line-number'><a name='L308' href='#L308'><pre>308</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> // That causes the version check to fail, so we remove it for now.</pre></td></tr><tr><td class='line-number'><a name='L309' href='#L309'><pre>309</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> version.obs_web_socket_version.pre = Prerelease::EMPTY;</pre></td></tr><tr><td class='line-number'><a name='L310' href='#L310'><pre>310</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L311' href='#L311'><pre>311</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> if !OBS_STUDIO_VERSION.matches(&amp;version.obs_version) {</pre></td></tr><tr><td class='line-number'><a name='L312' href='#L312'><pre>312</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(Error::ObsStudioVersion(</span></pre></td></tr><tr><td class='line-number'><a name='L313' href='#L313'><pre>313</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> version.obs_version,</span></pre></td></tr><tr><td class='line-number'><a name='L314' href='#L314'><pre>314</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> OBS_STUDIO_VERSION,</span></pre></td></tr><tr><td class='line-number'><a name='L315' href='#L315'><pre>315</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> ))</span>;</pre></td></tr><tr><td class='line-number'><a name='L316' href='#L316'><pre>316</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L317' href='#L317'><pre>317</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L318' href='#L318'><pre>318</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> if !OBS_WEBSOCKET_VERSION.matches(&amp;version.obs_web_socket_version) {</pre></td></tr><tr><td class='line-number'><a name='L319' href='#L319'><pre>319</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(Error::ObsWebsocketVersion(</span></pre></td></tr><tr><td class='line-number'><a name='L320' href='#L320'><pre>320</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> version.obs_web_socket_version,</span></pre></td></tr><tr><td class='line-number'><a name='L321' href='#L321'><pre>321</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> OBS_WEBSOCKET_VERSION,</span></pre></td></tr><tr><td class='line-number'><a name='L322' href='#L322'><pre>322</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> ))</span>;</pre></td></tr><tr><td class='line-number'><a name='L323' href='#L323'><pre>323</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L324' href='#L324'><pre>324</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L325' href='#L325'><pre>325</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> if RPC_VERSION != version.rpc_version {</pre></td></tr><tr><td class='line-number'><a name='L326' href='#L326'><pre>326</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(Error::RpcVersion {</span></pre></td></tr><tr><td class='line-number'><a name='L327' href='#L327'><pre>327</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> requested: RPC_VERSION,</span></pre></td></tr><tr><td class='line-number'><a name='L328' href='#L328'><pre>328</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> negotiated: version.rpc_version,</span></pre></td></tr><tr><td class='line-number'><a name='L329' href='#L329'><pre>329</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> })</span>;</pre></td></tr><tr><td class='line-number'><a name='L330' href='#L330'><pre>330</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L331' href='#L331'><pre>331</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L332' href='#L332'><pre>332</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> Ok(())</pre></td></tr><tr><td class='line-number'><a name='L333' href='#L333'><pre>333</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::verify_versions::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L305' href='#L305'><pre>305</pre></a></td><td class='covered-line'><pre>36</pre></td><td class='code'><pre> let <div class='tooltip'>mut version<span class='tooltip-content'>18</span></div> = <div class='tooltip'>self.general().version()<span class='tooltip-content'>18</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L306' href='#L306'><pre>306</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> // TODO: remove this after the official v5 release.</pre></td></tr><tr><td class='line-number'><a name='L307' href='#L307'><pre>307</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> // Current builds have prerelease info (like 5.0.0-91cabe1-git).</pre></td></tr><tr><td class='line-number'><a name='L308' href='#L308'><pre>308</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> // That causes the version check to fail, so we remove it for now.</pre></td></tr><tr><td class='line-number'><a name='L309' href='#L309'><pre>309</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> version.obs_web_socket_version.pre = Prerelease::EMPTY;</pre></td></tr><tr><td class='line-number'><a name='L310' href='#L310'><pre>310</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L311' href='#L311'><pre>311</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> if !OBS_STUDIO_VERSION.matches(&amp;version.obs_version) {</pre></td></tr><tr><td class='line-number'><a name='L312' href='#L312'><pre>312</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(Error::ObsStudioVersion(</span></pre></td></tr><tr><td class='line-number'><a name='L313' href='#L313'><pre>313</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> version.obs_version,</span></pre></td></tr><tr><td class='line-number'><a name='L314' href='#L314'><pre>314</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> OBS_STUDIO_VERSION,</span></pre></td></tr><tr><td class='line-number'><a name='L315' href='#L315'><pre>315</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> ))</span>;</pre></td></tr><tr><td class='line-number'><a name='L316' href='#L316'><pre>316</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L317' href='#L317'><pre>317</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L318' href='#L318'><pre>318</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> if !OBS_WEBSOCKET_VERSION.matches(&amp;version.obs_web_socket_version) {</pre></td></tr><tr><td class='line-number'><a name='L319' href='#L319'><pre>319</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(Error::ObsWebsocketVersion(</span></pre></td></tr><tr><td class='line-number'><a name='L320' href='#L320'><pre>320</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> version.obs_web_socket_version,</span></pre></td></tr><tr><td class='line-number'><a name='L321' href='#L321'><pre>321</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> OBS_WEBSOCKET_VERSION,</span></pre></td></tr><tr><td class='line-number'><a name='L322' href='#L322'><pre>322</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> ))</span>;</pre></td></tr><tr><td class='line-number'><a name='L323' href='#L323'><pre>323</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L324' href='#L324'><pre>324</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L325' href='#L325'><pre>325</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> if RPC_VERSION != version.rpc_version {</pre></td></tr><tr><td class='line-number'><a name='L326' href='#L326'><pre>326</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(Error::RpcVersion {</span></pre></td></tr><tr><td class='line-number'><a name='L327' href='#L327'><pre>327</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> requested: RPC_VERSION,</span></pre></td></tr><tr><td class='line-number'><a name='L328' href='#L328'><pre>328</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> negotiated: version.rpc_version,</span></pre></td></tr><tr><td class='line-number'><a name='L329' href='#L329'><pre>329</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> })</span>;</pre></td></tr><tr><td class='line-number'><a name='L330' href='#L330'><pre>330</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L331' href='#L331'><pre>331</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L332' href='#L332'><pre>332</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> Ok(())</pre></td></tr><tr><td class='line-number'><a name='L333' href='#L333'><pre>333</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::verify_versions::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::verify_versions::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L334' href='#L334'><pre>334</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> {</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, obws::responses::transitions::TransitionKinds&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::ui::Request, obws::responses::ui::MonitorList&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, obws::responses::config::VideoSettings&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::replay_buffer::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::Scenes&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, obws::responses::transitions::SceneTransitionList&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::media_inputs::Request, obws::responses::media_inputs::MediaStatus&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::hotkeys::Request, obws::responses::hotkeys::Hotkeys&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::replay_buffer::Request, obws::responses::replay_buffer::OutputActive&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::InputVolume&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, obws::responses::outputs::OutputStatus&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::general::Request, obws::responses::general::Version&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::ui::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::GetSceneItemTransform&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, obws::responses::config::StreamServiceSettings&lt;serde_json::value::Value&gt;&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::general::Request, obws::responses::general::Stats&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, obws::responses::recording::OutputStopped&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemId&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemList&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::Groups&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>28</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>28</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>28</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>28</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>28</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::filters::Request, obws::responses::filters::DefaultFilterSettings&lt;serde_json::value::Value&gt;&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::hotkeys::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::CurrentPreviewScene&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, obws::responses::outputs::OutputActive&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::profiles::Request, obws::responses::profiles::Profiles&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::InputSettings&lt;serde_json::value::Value&gt;&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, serde_json::value::Value&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::general::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, obws::responses::recording::OutputPaused&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::CurrentProgramScene&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemEnabled&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemLocked&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, obws::responses::recording::OutputActive&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::filters::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, obws::responses::outputs::OutputList&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::sources::Request, obws::responses::sources::SourceActive&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::media_inputs::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, obws::responses::outputs::OutputSettings&lt;serde_json::value::Value&gt;&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::virtual_cam::Request, obws::responses::virtual_cam::OutputActive&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemIndex&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::streaming::Request, obws::responses::streaming::StreamStatus&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, obws::responses::transitions::TransitionCursor&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::SceneTransitionOverride&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, obws::responses::config::RecordDirectory&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::profiles::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_collections::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_collections::Request, obws::responses::scene_collections::SceneCollections&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::sources::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::Inputs&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::profiles::Request, obws::responses::profiles::ProfileParameter&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::sources::Request, obws::responses::sources::ImageData&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::AudioMonitorType&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, obws::responses::transitions::CurrentSceneTransition&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::InputMuted&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::InputKinds&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::ui::Request, obws::responses::ui::StudioModeEnabled&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::filters::Request, obws::responses::filters::Filters&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::replay_buffer::Request, obws::responses::replay_buffer::SavedReplayPath&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemSettings&lt;serde_json::value::Value&gt;&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::DefaultInputSettings&lt;serde_json::value::Value&gt;&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, obws::responses::recording::RecordStatus&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::AudioSyncOffset&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::virtual_cam::Request, ()&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::filters::Request, obws::responses::filters::SourceFilter&gt;</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L335' href='#L335'><pre>335</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> async fn send_message&lt;&apos;a, R, T&gt;(&amp;self, req: R) -&gt; Result&lt;T&gt;</pre></td></tr><tr><td class='line-number'><a name='L336' href='#L336'><pre>336</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> where</pre></td></tr><tr><td class='line-number'><a name='L337' href='#L337'><pre>337</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> R: Into&lt;RequestType&lt;&apos;a&gt;&gt;,</pre></td></tr><tr><td class='line-number'><a name='L338' href='#L338'><pre>338</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> T: DeserializeOwned,</pre></td></tr><tr><td class='line-number'><a name='L339' href='#L339'><pre>339</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> {</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::&lt;_, _&gt;</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::&lt;_, _&gt;</pre></div></div></td></tr><tr><td class='line-number'><a name='L340' href='#L340'><pre>340</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> async fn send&lt;&apos;a&gt;(</pre></td></tr><tr><td class='line-number'><a name='L341' href='#L341'><pre>341</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> id_counter: &amp;AtomicU64,</pre></td></tr><tr><td class='line-number'><a name='L342' href='#L342'><pre>342</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> receivers: &amp;Arc&lt;ReceiverList&gt;,</pre></td></tr><tr><td class='line-number'><a name='L343' href='#L343'><pre>343</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> write: &amp;Mutex&lt;MessageWriter&gt;,</pre></td></tr><tr><td class='line-number'><a name='L344' href='#L344'><pre>344</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> req: RequestType&lt;&apos;a&gt;,</pre></td></tr><tr><td class='line-number'><a name='L345' href='#L345'><pre>345</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> ) -&gt; Result&lt;serde_json::Value&gt; {</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::{closure#0}::send</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L340' href='#L340'><pre>340</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> async fn send&lt;&apos;a&gt;(</pre></td></tr><tr><td class='line-number'><a name='L341' href='#L341'><pre>341</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> id_counter: &amp;AtomicU64,</pre></td></tr><tr><td class='line-number'><a name='L342' href='#L342'><pre>342</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> receivers: &amp;Arc&lt;ReceiverList&gt;,</pre></td></tr><tr><td class='line-number'><a name='L343' href='#L343'><pre>343</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> write: &amp;Mutex&lt;MessageWriter&gt;,</pre></td></tr><tr><td class='line-number'><a name='L344' href='#L344'><pre>344</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> req: RequestType&lt;&apos;a&gt;,</pre></td></tr><tr><td class='line-number'><a name='L345' href='#L345'><pre>345</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> ) -&gt; Result&lt;serde_json::Value&gt; {</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::{closure#0}::send</pre></div></div></td></tr><tr><td class='line-number'><a name='L346' href='#L346'><pre>346</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let id = id_counter.fetch_add(1, Ordering::SeqCst);</pre></td></tr><tr><td class='line-number'><a name='L347' href='#L347'><pre>347</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let id_str = id.to_string();</pre></td></tr><tr><td class='line-number'><a name='L348' href='#L348'><pre>348</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let req = ClientRequest::Request(Request {</pre></td></tr><tr><td class='line-number'><a name='L349' href='#L349'><pre>349</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> request_id: &amp;id_str,</pre></td></tr><tr><td class='line-number'><a name='L350' href='#L350'><pre>350</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> ty: req,</pre></td></tr><tr><td class='line-number'><a name='L351' href='#L351'><pre>351</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> });</pre></td></tr><tr><td class='line-number'><a name='L352' href='#L352'><pre>352</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let json = serde_json::to_string(&amp;req).map_err(Error::SerializeMessage)<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L353' href='#L353'><pre>353</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L354' href='#L354'><pre>354</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let rx = receivers.add(id)<div class='tooltip'><span class='red'>.await</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L355' href='#L355'><pre>355</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L356' href='#L356'><pre>356</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> trace!(%json, &quot;sending message&quot;);</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::{closure#0}::send::{closure#0}::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L356' href='#L356'><pre>356</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> trace!(%json, &quot;sending message&quot;);</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::{closure#0}::send::{closure#0}::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::{closure#0}::send::{closure#0}::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L357' href='#L357'><pre>357</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let write_result = write</pre></td></tr><tr><td class='line-number'><a name='L358' href='#L358'><pre>358</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> .lock()<span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L359' href='#L359'><pre>359</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .await</span></pre></td></tr><tr><td class='line-number'><a name='L360' href='#L360'><pre>360</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> .send(Message::Text(json))<span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L361' href='#L361'><pre>361</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .await</span></pre></td></tr><tr><td class='line-number'><a name='L362' href='#L362'><pre>362</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> .map_err(Error::Send);</pre></td></tr><tr><td class='line-number'><a name='L363' href='#L363'><pre>363</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L364' href='#L364'><pre>364</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> if let Err(<div class='tooltip'><span class='red'>e</span><span class='tooltip-content'>0</span></div>) = write_result {</pre></td></tr><tr><td class='line-number'><a name='L365' href='#L365'><pre>365</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>receivers.remove(id)</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L366' href='#L366'><pre>366</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(e)</span>;</pre></td></tr><tr><td class='line-number'><a name='L367' href='#L367'><pre>367</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L368' href='#L368'><pre>368</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L369' href='#L369'><pre>369</pre></a></td><td class='covered-line'><pre>692</pre></td><td class='code'><pre> let (<div class='tooltip'>status, resp<span class='tooltip-content'>346</span></div>) = <div class='tooltip'>rx<span class='tooltip-content'>346</span></div>.await.<div class='tooltip'>map_err(Error::ReceiveMessage)<span class='tooltip-content'>346</span></div><div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L370' href='#L370'><pre>370</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> if !status.result {</pre></td></tr><tr><td class='line-number'><a name='L371' href='#L371'><pre>371</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(Error::Api {</span></pre></td></tr><tr><td class='line-number'><a name='L372' href='#L372'><pre>372</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> code: status.code,</span></pre></td></tr><tr><td class='line-number'><a name='L373' href='#L373'><pre>373</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> message: status.comment,</span></pre></td></tr><tr><td class='line-number'><a name='L374' href='#L374'><pre>374</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> })</span>;</pre></td></tr><tr><td class='line-number'><a name='L375' href='#L375'><pre>375</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L376' href='#L376'><pre>376</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L377' href='#L377'><pre>377</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> Ok(resp)</pre></td></tr><tr><td class='line-number'><a name='L378' href='#L378'><pre>378</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::{closure#0}::send::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L345' href='#L345'><pre>345</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> ) -&gt; Result&lt;serde_json::Value&gt; {</pre></td></tr><tr><td class='line-number'><a name='L346' href='#L346'><pre>346</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let id = id_counter.fetch_add(1, Ordering::SeqCst);</pre></td></tr><tr><td class='line-number'><a name='L347' href='#L347'><pre>347</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let id_str = id.to_string();</pre></td></tr><tr><td class='line-number'><a name='L348' href='#L348'><pre>348</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let req = ClientRequest::Request(Request {</pre></td></tr><tr><td class='line-number'><a name='L349' href='#L349'><pre>349</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> request_id: &amp;id_str,</pre></td></tr><tr><td class='line-number'><a name='L350' href='#L350'><pre>350</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> ty: req,</pre></td></tr><tr><td class='line-number'><a name='L351' href='#L351'><pre>351</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> });</pre></td></tr><tr><td class='line-number'><a name='L352' href='#L352'><pre>352</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let json = serde_json::to_string(&amp;req).map_err(Error::SerializeMessage)<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L353' href='#L353'><pre>353</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L354' href='#L354'><pre>354</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let rx = receivers.add(id)<div class='tooltip'><span class='red'>.await</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L355' href='#L355'><pre>355</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L356' href='#L356'><pre>356</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> trace!(%json, &quot;sending message&quot;);</pre></td></tr><tr><td class='line-number'><a name='L357' href='#L357'><pre>357</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> let write_result = write</pre></td></tr><tr><td class='line-number'><a name='L358' href='#L358'><pre>358</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> .lock()<span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L359' href='#L359'><pre>359</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .await</span></pre></td></tr><tr><td class='line-number'><a name='L360' href='#L360'><pre>360</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> .send(Message::Text(json))<span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L361' href='#L361'><pre>361</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .await</span></pre></td></tr><tr><td class='line-number'><a name='L362' href='#L362'><pre>362</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> .map_err(Error::Send);</pre></td></tr><tr><td class='line-number'><a name='L363' href='#L363'><pre>363</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L364' href='#L364'><pre>364</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> if let Err(<div class='tooltip'><span class='red'>e</span><span class='tooltip-content'>0</span></div>) = write_result {</pre></td></tr><tr><td class='line-number'><a name='L365' href='#L365'><pre>365</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>receivers.remove(id)</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L366' href='#L366'><pre>366</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(e)</span>;</pre></td></tr><tr><td class='line-number'><a name='L367' href='#L367'><pre>367</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L368' href='#L368'><pre>368</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L369' href='#L369'><pre>369</pre></a></td><td class='covered-line'><pre>692</pre></td><td class='code'><pre> let (<div class='tooltip'>status, resp<span class='tooltip-content'>346</span></div>) = <div class='tooltip'>rx<span class='tooltip-content'>346</span></div>.await.<div class='tooltip'>map_err(Error::ReceiveMessage)<span class='tooltip-content'>346</span></div><div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L370' href='#L370'><pre>370</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> if !status.result {</pre></td></tr><tr><td class='line-number'><a name='L371' href='#L371'><pre>371</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> return <span class='red'>Err(Error::Api {</span></pre></td></tr><tr><td class='line-number'><a name='L372' href='#L372'><pre>372</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> code: status.code,</span></pre></td></tr><tr><td class='line-number'><a name='L373' href='#L373'><pre>373</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> message: status.comment,</span></pre></td></tr><tr><td class='line-number'><a name='L374' href='#L374'><pre>374</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> })</span>;</pre></td></tr><tr><td class='line-number'><a name='L375' href='#L375'><pre>375</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L376' href='#L376'><pre>376</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L377' href='#L377'><pre>377</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> Ok(resp)</pre></td></tr><tr><td class='line-number'><a name='L378' href='#L378'><pre>378</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::{closure#0}::send::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::{closure#0}::send::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L379' href='#L379'><pre>379</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>692</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>346</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>346</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>346</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>10</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>10</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, obws::responses::config::StreamServiceSettings&lt;serde_json::value::Value&gt;&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, obws::responses::transitions::CurrentSceneTransition&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::media_inputs::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>3</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>3</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>10</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>10</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>10</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>5</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>5</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::DefaultInputSettings&lt;serde_json::value::Value&gt;&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, obws::responses::outputs::OutputSettings&lt;serde_json::value::Value&gt;&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::Inputs&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>38</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>19</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>19</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, obws::responses::transitions::SceneTransitionList&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, obws::responses::config::RecordDirectory&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::SceneTransitionOverride&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::CurrentPreviewScene&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, obws::responses::outputs::OutputActive&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>2</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>2</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::Scenes&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>38</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>19</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>19</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::general::Request, obws::responses::general::Version&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>38</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>19</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>19</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::replay_buffer::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>3</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>3</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemList&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>2</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>2</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, obws::responses::recording::RecordStatus&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>38</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>19</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>19</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, obws::responses::transitions::TransitionCursor&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::filters::Request, obws::responses::filters::DefaultFilterSettings&lt;serde_json::value::Value&gt;&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::filters::Request, obws::responses::filters::Filters&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>38</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>19</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>19</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::CurrentProgramScene&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, obws::responses::config::VideoSettings&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, serde_json::value::Value&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemId&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>3</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>3</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::replay_buffer::Request, obws::responses::replay_buffer::OutputActive&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>42</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>21</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>21</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::sources::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::ui::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>8</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>8</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::InputVolume&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, obws::responses::outputs::OutputList&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::filters::Request, obws::responses::filters::SourceFilter&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::media_inputs::Request, obws::responses::media_inputs::MediaStatus&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::GetSceneItemTransform&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::config::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>3</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>3</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::AudioMonitorType&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::replay_buffer::Request, obws::responses::replay_buffer::SavedReplayPath&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::profiles::Request, obws::responses::profiles::Profiles&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>40</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>20</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>20</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>20</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::virtual_cam::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>2</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>2</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::AudioSyncOffset&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, obws::responses::scenes::Groups&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>38</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>19</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>19</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::sources::Request, obws::responses::sources::ImageData&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::filters::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>8</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>8</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>8</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::streaming::Request, obws::responses::streaming::StreamStatus&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>3</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>3</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::ui::Request, obws::responses::ui::StudioModeEnabled&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>38</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>19</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>19</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::outputs::Request, obws::responses::outputs::OutputStatus&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemEnabled&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::profiles::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>12</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>6</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>6</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_collections::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>2</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>2</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::transitions::Request, obws::responses::transitions::TransitionKinds&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::InputMuted&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>3</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>3</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::profiles::Request, obws::responses::profiles::ProfileParameter&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemIndex&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, obws::responses::recording::OutputPaused&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>2</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>2</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::InputSettings&lt;serde_json::value::Value&gt;&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::general::Request, obws::responses::general::Stats&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::general::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemLocked&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scenes::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>56</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>28</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>28</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>28</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>28</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, obws::responses::recording::OutputActive&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>2</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>2</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::hotkeys::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>2</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>2</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::hotkeys::Request, obws::responses::hotkeys::Hotkeys&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_items::Request, obws::responses::scene_items::SceneItemSettings&lt;serde_json::value::Value&gt;&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, ()&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>6</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>3</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>3</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>3</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::recording::Request, obws::responses::recording::OutputStopped&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::ui::Request, obws::responses::ui::MonitorList&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::scene_collections::Request, obws::responses::scene_collections::SceneCollections&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>4</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>2</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>2</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::virtual_cam::Request, obws::responses::virtual_cam::OutputActive&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>42</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>21</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>21</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::sources::Request, obws::responses::sources::SourceActive&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::send_message::&lt;obws::requests::inputs::Request, obws::responses::inputs::InputKinds&gt;::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L380' href='#L380'><pre>380</pre></a></td><td class='covered-line'><pre>2</pre></td><td class='code'><pre> let <div class='tooltip'>resp<span class='tooltip-content'>1</span></div> = <div class='tooltip'>send(&amp;self.id_counter, &amp;self.receivers, &amp;self.write, req.into())<span class='tooltip-content'>1</span></div>.await<div class='tooltip'><span class='red'>?</span><span class='tooltip-content'>0</span></div>;</pre></td></tr><tr><td class='line-number'><a name='L381' href='#L381'><pre>381</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> serde_json::from_value(resp).map_err(Error::DeserializeResponse)</pre></td></tr><tr><td class='line-number'><a name='L382' href='#L382'><pre>382</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::&lt;_, _&gt;::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::send_message::&lt;_, _&gt;::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L383' href='#L383'><pre>383</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L384' href='#L384'><pre>384</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Disconnect from obs-websocket and shut down all machinery.</pre></td></tr><tr><td class='line-number'><a name='L385' href='#L385'><pre>385</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L386' href='#L386'><pre>386</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// This is called automatically when dropping the client but doesn&apos;t wait for all background</pre></td></tr><tr><td class='line-number'><a name='L387' href='#L387'><pre>387</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// tasks to complete. Therefore, it is recommended to call this manually once the client is</pre></td></tr><tr><td class='line-number'><a name='L388' href='#L388'><pre>388</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// no longer needed.</pre></td></tr><tr><td class='line-number'><a name='L389' href='#L389'><pre>389</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> pub fn disconnect(&amp;mut self) -&gt; impl Future {</pre></td></tr><tr><td class='line-number'><a name='L390' href='#L390'><pre>390</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let handle = self.handle.take().map(|h| {</pre></td></tr><tr><td class='line-number'><a name='L391' href='#L391'><pre>391</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> h.abort();</pre></td></tr><tr><td class='line-number'><a name='L392' href='#L392'><pre>392</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> h</pre></td></tr><tr><td class='line-number'><a name='L393' href='#L393'><pre>393</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> });</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::disconnect::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L390' href='#L390'><pre>390</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let handle = self.handle.take().map(|h| {</pre></td></tr><tr><td class='line-number'><a name='L391' href='#L391'><pre>391</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> h.abort();</pre></td></tr><tr><td class='line-number'><a name='L392' href='#L392'><pre>392</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> h</pre></td></tr><tr><td class='line-number'><a name='L393' href='#L393'><pre>393</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> });</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::disconnect::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L394' href='#L394'><pre>394</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L395' href='#L395'><pre>395</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> async {</pre></td></tr><tr><td class='line-number'><a name='L396' href='#L396'><pre>396</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> if let Some(<span class='red'>h</span>) = <span class='red'>handle</span> {</pre></td></tr><tr><td class='line-number'><a name='L397' href='#L397'><pre>397</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>h</span><span class='red'>.await</span>.<span class='red'>ok()</span>;</pre></td></tr><tr><td class='line-number'><a name='L398' href='#L398'><pre>398</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> }<span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L399' href='#L399'><pre>399</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>}</span></pre><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::disconnect::{closure#1}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::disconnect::{closure#1}</pre></div></div></td></tr><tr><td class='line-number'><a name='L400' href='#L400'><pre>400</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::disconnect</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L389' href='#L389'><pre>389</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> pub fn disconnect(&amp;mut self) -&gt; impl Future {</pre></td></tr><tr><td class='line-number'><a name='L390' href='#L390'><pre>390</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> let handle = self.handle.take().map(|h| {</pre></td></tr><tr><td class='line-number'><a name='L391' href='#L391'><pre>391</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> h.abort();</pre></td></tr><tr><td class='line-number'><a name='L392' href='#L392'><pre>392</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> h</pre></td></tr><tr><td class='line-number'><a name='L393' href='#L393'><pre>393</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> });</pre></td></tr><tr><td class='line-number'><a name='L394' href='#L394'><pre>394</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L395' href='#L395'><pre>395</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> async {</pre></td></tr><tr><td class='line-number'><a name='L396' href='#L396'><pre>396</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> if let Some(h) = handle {</pre></td></tr><tr><td class='line-number'><a name='L397' href='#L397'><pre>397</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> h.await.ok();</pre></td></tr><tr><td class='line-number'><a name='L398' href='#L398'><pre>398</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L399' href='#L399'><pre>399</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L400' href='#L400'><pre>400</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::disconnect</pre></div></div></td></tr><tr><td class='line-number'><a name='L401' href='#L401'><pre>401</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L402' href='#L402'><pre>402</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Adjust settings of the currently active connection by re-identifying against</pre></td></tr><tr><td class='line-number'><a name='L403' href='#L403'><pre>403</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// `obs-websocket`.</pre></td></tr><tr><td class='line-number'><a name='L404' href='#L404'><pre>404</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L405' href='#L405'><pre>405</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// This currently allows to change the events to listen for, without the need of a full</pre></td></tr><tr><td class='line-number'><a name='L406' href='#L406'><pre>406</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// disconnect and new connection.</pre></td></tr><tr><td class='line-number'><a name='L407' href='#L407'><pre>407</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>pub async fn reidentify(&amp;self, event_subscriptions: EventSubscription) -&gt; Result&lt;()&gt; </span>{</pre><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::reidentify</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::reidentify</pre></div></div></td></tr><tr><td class='line-number'><a name='L408' href='#L408'><pre>408</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='red'>json</span> = <span class='red'>serde_json::to_string(&amp;ClientRequest::Reidentify(Reidentify {</span></pre></td></tr><tr><td class='line-number'><a name='L409' href='#L409'><pre>409</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> event_subscriptions: Some(event_subscriptions),</span></pre></td></tr><tr><td class='line-number'><a name='L410' href='#L410'><pre>410</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> }))</span></pre></td></tr><tr><td class='line-number'><a name='L411' href='#L411'><pre>411</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .map_err(Error::SerializeMessage)</span><span class='red'>?</span>;</pre></td></tr><tr><td class='line-number'><a name='L412' href='#L412'><pre>412</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L413' href='#L413'><pre>413</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='red'>rx</span> = <span class='red'>self.reidentify_receivers.add()</span><span class='red'>.await</span>;</pre></td></tr><tr><td class='line-number'><a name='L414' href='#L414'><pre>414</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L415' href='#L415'><pre>415</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>self.write</span></pre></td></tr><tr><td class='line-number'><a name='L416' href='#L416'><pre>416</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .lock()</span><span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L417' href='#L417'><pre>417</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .await</span></pre></td></tr><tr><td class='line-number'><a name='L418' href='#L418'><pre>418</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='red'>send(Message::Text(json))</span><span class='red'></span></pre></td></tr><tr><td class='line-number'><a name='L419' href='#L419'><pre>419</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> .await</span></pre></td></tr><tr><td class='line-number'><a name='L420' href='#L420'><pre>420</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> .<span class='red'>map_err(Error::Send)</span><span class='red'>?</span>;</pre></td></tr><tr><td class='line-number'><a name='L421' href='#L421'><pre>421</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L422' href='#L422'><pre>422</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> let <span class='red'>resp</span> = <span class='red'>rx</span><span class='red'>.await</span>.<span class='red'>map_err(Error::ReceiveMessage)</span><span class='red'>?</span>;</pre></td></tr><tr><td class='line-number'><a name='L423' href='#L423'><pre>423</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>debug!(</span></pre></td></tr><tr><td class='line-number'><a name='L424' href='#L424'><pre>424</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> rpc_version = %resp.negotiated_rpc_version,</span></pre></td></tr><tr><td class='line-number'><a name='L425' href='#L425'><pre>425</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> </span><span class='red'>&quot;re-identified against obs-websocket&quot;</span><span class='red'>,</span></pre></td></tr><tr><td class='line-number'><a name='L426' href='#L426'><pre>426</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre><span class='red'> )</span>;</pre><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::reidentify::{closure#0}::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::reidentify::{closure#0}::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L427' href='#L427'><pre>427</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L428' href='#L428'><pre>428</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>Ok(())</span></pre></td></tr><tr><td class='line-number'><a name='L429' href='#L429'><pre>429</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>}</span></pre><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::reidentify::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::reidentify::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L430' href='#L430'><pre>430</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L431' href='#L431'><pre>431</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Get a stream of events. Each call to this function creates a new listener, therefore it&apos;s</pre></td></tr><tr><td class='line-number'><a name='L432' href='#L432'><pre>432</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// recommended to keep the stream around and iterate over it.</pre></td></tr><tr><td class='line-number'><a name='L433' href='#L433'><pre>433</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L434' href='#L434'><pre>434</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// **Note**: To be able to iterate over the stream you have to pin it with</pre></td></tr><tr><td class='line-number'><a name='L435' href='#L435'><pre>435</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// [`futures_util::pin_mut`] for example.</pre></td></tr><tr><td class='line-number'><a name='L436' href='#L436'><pre>436</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L437' href='#L437'><pre>437</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// # Errors</pre></td></tr><tr><td class='line-number'><a name='L438' href='#L438'><pre>438</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> ///</pre></td></tr><tr><td class='line-number'><a name='L439' href='#L439'><pre>439</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Getting a new stream of events fails with [`Error::Disconnected`] if the client is</pre></td></tr><tr><td class='line-number'><a name='L440' href='#L440'><pre>440</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// disconnected from obs-websocket. That can happen either by manually disconnecting, stopping</pre></td></tr><tr><td class='line-number'><a name='L441' href='#L441'><pre>441</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// obs-websocket or closing OBS.</pre></td></tr><tr><td class='line-number'><a name='L442' href='#L442'><pre>442</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> #[cfg(feature = &quot;events&quot;)]</pre></td></tr><tr><td class='line-number'><a name='L443' href='#L443'><pre>443</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> pub fn events(&amp;self) -&gt; Result&lt;impl Stream&lt;Item = Event&gt;&gt; {</pre></td></tr><tr><td class='line-number'><a name='L444' href='#L444'><pre>444</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> if let Some(sender) = &amp;self.event_sender.upgrade() {</pre></td></tr><tr><td class='line-number'><a name='L445' href='#L445'><pre>445</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> let mut receiver = sender.subscribe();</pre></td></tr><tr><td class='line-number'><a name='L446' href='#L446'><pre>446</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L447' href='#L447'><pre>447</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> Ok(async_stream::stream! {</pre></td></tr><tr><td class='line-number'><a name='L448' href='#L448'><pre>448</pre></a></td><td class='covered-line'><pre>49</pre></td><td class='code'><pre> while let Ok(<div class='tooltip'>event<span class='tooltip-content'>31</span></div>) = receiver.recv().await {</pre></td></tr><tr><td class='line-number'><a name='L449' href='#L449'><pre>449</pre></a></td><td class='covered-line'><pre>31</pre></td><td class='code'><pre> yield event;</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::events::{closure#0}</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L447' href='#L447'><pre>447</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> Ok(async_stream::stream! {</pre></td></tr><tr><td class='line-number'><a name='L448' href='#L448'><pre>448</pre></a></td><td class='covered-line'><pre>49</pre></td><td class='code'><pre> while let Ok(<div class='tooltip'>event<span class='tooltip-content'>31</span></div>) = receiver.recv().await {</pre></td></tr><tr><td class='line-number'><a name='L449' href='#L449'><pre>449</pre></a></td><td class='covered-line'><pre>31</pre></td><td class='code'><pre> yield event;</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::events::{closure#0}</pre></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::events::{closure#0}</pre></div></div></td></tr><tr><td class='line-number'><a name='L450' href='#L450'><pre>450</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L451' href='#L451'><pre>451</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> })</pre></td></tr><tr><td class='line-number'><a name='L452' href='#L452'><pre>452</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> } else {</pre></td></tr><tr><td class='line-number'><a name='L453' href='#L453'><pre>453</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>Err(crate::Error::Disconnected)</span></pre></td></tr><tr><td class='line-number'><a name='L454' href='#L454'><pre>454</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L455' href='#L455'><pre>455</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::events</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L444' href='#L444'><pre>444</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> if let Some(sender) = &amp;self.event_sender.upgrade() {</pre></td></tr><tr><td class='line-number'><a name='L445' href='#L445'><pre>445</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> let mut receiver = sender.subscribe();</pre></td></tr><tr><td class='line-number'><a name='L446' href='#L446'><pre>446</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L447' href='#L447'><pre>447</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> Ok(async_stream::stream! {</pre></td></tr><tr><td class='line-number'><a name='L448' href='#L448'><pre>448</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> while let Ok(event) = receiver.recv().await {</pre></td></tr><tr><td class='line-number'><a name='L449' href='#L449'><pre>449</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> yield event;</pre></td></tr><tr><td class='line-number'><a name='L450' href='#L450'><pre>450</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L451' href='#L451'><pre>451</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> })</pre></td></tr><tr><td class='line-number'><a name='L452' href='#L452'><pre>452</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> } else {</pre></td></tr><tr><td class='line-number'><a name='L453' href='#L453'><pre>453</pre></a></td><td class='uncovered-line'><pre>0</pre></td><td class='code'><pre> <span class='red'>Err(crate::Error::Disconnected)</span></pre></td></tr><tr><td class='line-number'><a name='L454' href='#L454'><pre>454</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L455' href='#L455'><pre>455</pre></a></td><td class='covered-line'><pre>5</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::events</pre></div></div></td></tr><tr><td class='line-number'><a name='L456' href='#L456'><pre>456</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L457' href='#L457'><pre>457</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to OBS configuration.</pre></td></tr><tr><td class='line-number'><a name='L458' href='#L458'><pre>458</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn config(&amp;self) -&gt; Config&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L459' href='#L459'><pre>459</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Config { client: self }</pre></td></tr><tr><td class='line-number'><a name='L460' href='#L460'><pre>460</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::config</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L458' href='#L458'><pre>458</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn config(&amp;self) -&gt; Config&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L459' href='#L459'><pre>459</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Config { client: self }</pre></td></tr><tr><td class='line-number'><a name='L460' href='#L460'><pre>460</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::config</pre></div></div></td></tr><tr><td class='line-number'><a name='L461' href='#L461'><pre>461</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L462' href='#L462'><pre>462</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to filters.</pre></td></tr><tr><td class='line-number'><a name='L463' href='#L463'><pre>463</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn filters(&amp;self) -&gt; Filters&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L464' href='#L464'><pre>464</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> Filters { client: self }</pre></td></tr><tr><td class='line-number'><a name='L465' href='#L465'><pre>465</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::filters</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L463' href='#L463'><pre>463</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn filters(&amp;self) -&gt; Filters&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L464' href='#L464'><pre>464</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> Filters { client: self }</pre></td></tr><tr><td class='line-number'><a name='L465' href='#L465'><pre>465</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::filters</pre></div></div></td></tr><tr><td class='line-number'><a name='L466' href='#L466'><pre>466</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L467' href='#L467'><pre>467</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access general API functions.</pre></td></tr><tr><td class='line-number'><a name='L468' href='#L468'><pre>468</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn general(&amp;self) -&gt; General&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L469' href='#L469'><pre>469</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> General { client: self }</pre></td></tr><tr><td class='line-number'><a name='L470' href='#L470'><pre>470</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::general</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L468' href='#L468'><pre>468</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn general(&amp;self) -&gt; General&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L469' href='#L469'><pre>469</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> General { client: self }</pre></td></tr><tr><td class='line-number'><a name='L470' href='#L470'><pre>470</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::general</pre></div></div></td></tr><tr><td class='line-number'><a name='L471' href='#L471'><pre>471</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L472' href='#L472'><pre>472</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to hotkeys.</pre></td></tr><tr><td class='line-number'><a name='L473' href='#L473'><pre>473</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn hotkeys(&amp;self) -&gt; Hotkeys&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L474' href='#L474'><pre>474</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Hotkeys { client: self }</pre></td></tr><tr><td class='line-number'><a name='L475' href='#L475'><pre>475</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::hotkeys</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L473' href='#L473'><pre>473</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn hotkeys(&amp;self) -&gt; Hotkeys&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L474' href='#L474'><pre>474</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Hotkeys { client: self }</pre></td></tr><tr><td class='line-number'><a name='L475' href='#L475'><pre>475</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::hotkeys</pre></div></div></td></tr><tr><td class='line-number'><a name='L476' href='#L476'><pre>476</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L477' href='#L477'><pre>477</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to inputs.</pre></td></tr><tr><td class='line-number'><a name='L478' href='#L478'><pre>478</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn inputs(&amp;self) -&gt; Inputs&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L479' href='#L479'><pre>479</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> Inputs { client: self }</pre></td></tr><tr><td class='line-number'><a name='L480' href='#L480'><pre>480</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::inputs</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L478' href='#L478'><pre>478</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn inputs(&amp;self) -&gt; Inputs&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L479' href='#L479'><pre>479</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> Inputs { client: self }</pre></td></tr><tr><td class='line-number'><a name='L480' href='#L480'><pre>480</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::inputs</pre></div></div></td></tr><tr><td class='line-number'><a name='L481' href='#L481'><pre>481</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L482' href='#L482'><pre>482</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to media inputs.</pre></td></tr><tr><td class='line-number'><a name='L483' href='#L483'><pre>483</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn media_inputs(&amp;self) -&gt; MediaInputs&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L484' href='#L484'><pre>484</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MediaInputs { client: self }</pre></td></tr><tr><td class='line-number'><a name='L485' href='#L485'><pre>485</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::media_inputs</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L483' href='#L483'><pre>483</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn media_inputs(&amp;self) -&gt; MediaInputs&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L484' href='#L484'><pre>484</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> MediaInputs { client: self }</pre></td></tr><tr><td class='line-number'><a name='L485' href='#L485'><pre>485</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::media_inputs</pre></div></div></td></tr><tr><td class='line-number'><a name='L486' href='#L486'><pre>486</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L487' href='#L487'><pre>487</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to outputs.</pre></td></tr><tr><td class='line-number'><a name='L488' href='#L488'><pre>488</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn outputs(&amp;self) -&gt; Outputs&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L489' href='#L489'><pre>489</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Outputs { client: self }</pre></td></tr><tr><td class='line-number'><a name='L490' href='#L490'><pre>490</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::outputs</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L488' href='#L488'><pre>488</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn outputs(&amp;self) -&gt; Outputs&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L489' href='#L489'><pre>489</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Outputs { client: self }</pre></td></tr><tr><td class='line-number'><a name='L490' href='#L490'><pre>490</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::outputs</pre></div></div></td></tr><tr><td class='line-number'><a name='L491' href='#L491'><pre>491</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L492' href='#L492'><pre>492</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to profiles.</pre></td></tr><tr><td class='line-number'><a name='L493' href='#L493'><pre>493</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn profiles(&amp;self) -&gt; Profiles&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L494' href='#L494'><pre>494</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> Profiles { client: self }</pre></td></tr><tr><td class='line-number'><a name='L495' href='#L495'><pre>495</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::profiles</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L493' href='#L493'><pre>493</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn profiles(&amp;self) -&gt; Profiles&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L494' href='#L494'><pre>494</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> Profiles { client: self }</pre></td></tr><tr><td class='line-number'><a name='L495' href='#L495'><pre>495</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::profiles</pre></div></div></td></tr><tr><td class='line-number'><a name='L496' href='#L496'><pre>496</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L497' href='#L497'><pre>497</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to recording.</pre></td></tr><tr><td class='line-number'><a name='L498' href='#L498'><pre>498</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn recording(&amp;self) -&gt; Recording&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L499' href='#L499'><pre>499</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> Recording { client: self }</pre></td></tr><tr><td class='line-number'><a name='L500' href='#L500'><pre>500</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::recording</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L498' href='#L498'><pre>498</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn recording(&amp;self) -&gt; Recording&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L499' href='#L499'><pre>499</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> Recording { client: self }</pre></td></tr><tr><td class='line-number'><a name='L500' href='#L500'><pre>500</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::recording</pre></div></div></td></tr><tr><td class='line-number'><a name='L501' href='#L501'><pre>501</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L502' href='#L502'><pre>502</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to the replay buffer.</pre></td></tr><tr><td class='line-number'><a name='L503' href='#L503'><pre>503</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn replay_buffer(&amp;self) -&gt; ReplayBuffer&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L504' href='#L504'><pre>504</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> ReplayBuffer { client: self }</pre></td></tr><tr><td class='line-number'><a name='L505' href='#L505'><pre>505</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::replay_buffer</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L503' href='#L503'><pre>503</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn replay_buffer(&amp;self) -&gt; ReplayBuffer&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L504' href='#L504'><pre>504</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> ReplayBuffer { client: self }</pre></td></tr><tr><td class='line-number'><a name='L505' href='#L505'><pre>505</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::replay_buffer</pre></div></div></td></tr><tr><td class='line-number'><a name='L506' href='#L506'><pre>506</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L507' href='#L507'><pre>507</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to scene collections.</pre></td></tr><tr><td class='line-number'><a name='L508' href='#L508'><pre>508</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn scene_collections(&amp;self) -&gt; SceneCollections&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L509' href='#L509'><pre>509</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> SceneCollections { client: self }</pre></td></tr><tr><td class='line-number'><a name='L510' href='#L510'><pre>510</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::scene_collections</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L508' href='#L508'><pre>508</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn scene_collections(&amp;self) -&gt; SceneCollections&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L509' href='#L509'><pre>509</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> SceneCollections { client: self }</pre></td></tr><tr><td class='line-number'><a name='L510' href='#L510'><pre>510</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::scene_collections</pre></div></div></td></tr><tr><td class='line-number'><a name='L511' href='#L511'><pre>511</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L512' href='#L512'><pre>512</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to scene items.</pre></td></tr><tr><td class='line-number'><a name='L513' href='#L513'><pre>513</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn scene_items(&amp;self) -&gt; SceneItems&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L514' href='#L514'><pre>514</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> SceneItems { client: self }</pre></td></tr><tr><td class='line-number'><a name='L515' href='#L515'><pre>515</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::scene_items</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L513' href='#L513'><pre>513</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn scene_items(&amp;self) -&gt; SceneItems&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L514' href='#L514'><pre>514</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> SceneItems { client: self }</pre></td></tr><tr><td class='line-number'><a name='L515' href='#L515'><pre>515</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::scene_items</pre></div></div></td></tr><tr><td class='line-number'><a name='L516' href='#L516'><pre>516</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L517' href='#L517'><pre>517</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to scenes.</pre></td></tr><tr><td class='line-number'><a name='L518' href='#L518'><pre>518</pre></a></td><td class='covered-line'><pre>55</pre></td><td class='code'><pre> pub fn scenes(&amp;self) -&gt; Scenes&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L519' href='#L519'><pre>519</pre></a></td><td class='covered-line'><pre>55</pre></td><td class='code'><pre> Scenes { client: self }</pre></td></tr><tr><td class='line-number'><a name='L520' href='#L520'><pre>520</pre></a></td><td class='covered-line'><pre>55</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::scenes</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L518' href='#L518'><pre>518</pre></a></td><td class='covered-line'><pre>55</pre></td><td class='code'><pre> pub fn scenes(&amp;self) -&gt; Scenes&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L519' href='#L519'><pre>519</pre></a></td><td class='covered-line'><pre>55</pre></td><td class='code'><pre> Scenes { client: self }</pre></td></tr><tr><td class='line-number'><a name='L520' href='#L520'><pre>520</pre></a></td><td class='covered-line'><pre>55</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::scenes</pre></div></div></td></tr><tr><td class='line-number'><a name='L521' href='#L521'><pre>521</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L522' href='#L522'><pre>522</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to sources.</pre></td></tr><tr><td class='line-number'><a name='L523' href='#L523'><pre>523</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn sources(&amp;self) -&gt; Sources&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L524' href='#L524'><pre>524</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Sources { client: self }</pre></td></tr><tr><td class='line-number'><a name='L525' href='#L525'><pre>525</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::sources</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L523' href='#L523'><pre>523</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn sources(&amp;self) -&gt; Sources&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L524' href='#L524'><pre>524</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Sources { client: self }</pre></td></tr><tr><td class='line-number'><a name='L525' href='#L525'><pre>525</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::sources</pre></div></div></td></tr><tr><td class='line-number'><a name='L526' href='#L526'><pre>526</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L527' href='#L527'><pre>527</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to streaming.</pre></td></tr><tr><td class='line-number'><a name='L528' href='#L528'><pre>528</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn streaming(&amp;self) -&gt; Streaming&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L529' href='#L529'><pre>529</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Streaming { client: self }</pre></td></tr><tr><td class='line-number'><a name='L530' href='#L530'><pre>530</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::streaming</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L528' href='#L528'><pre>528</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn streaming(&amp;self) -&gt; Streaming&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L529' href='#L529'><pre>529</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Streaming { client: self }</pre></td></tr><tr><td class='line-number'><a name='L530' href='#L530'><pre>530</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::streaming</pre></div></div></td></tr><tr><td class='line-number'><a name='L531' href='#L531'><pre>531</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L532' href='#L532'><pre>532</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to transitions.</pre></td></tr><tr><td class='line-number'><a name='L533' href='#L533'><pre>533</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn transitions(&amp;self) -&gt; Transitions&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L534' href='#L534'><pre>534</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Transitions { client: self }</pre></td></tr><tr><td class='line-number'><a name='L535' href='#L535'><pre>535</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::transitions</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L533' href='#L533'><pre>533</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> pub fn transitions(&amp;self) -&gt; Transitions&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L534' href='#L534'><pre>534</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> Transitions { client: self }</pre></td></tr><tr><td class='line-number'><a name='L535' href='#L535'><pre>535</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::transitions</pre></div></div></td></tr><tr><td class='line-number'><a name='L536' href='#L536'><pre>536</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L537' href='#L537'><pre>537</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to the user interface.</pre></td></tr><tr><td class='line-number'><a name='L538' href='#L538'><pre>538</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> pub fn ui(&amp;self) -&gt; Ui&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L539' href='#L539'><pre>539</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> Ui { client: self }</pre></td></tr><tr><td class='line-number'><a name='L540' href='#L540'><pre>540</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::ui</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L538' href='#L538'><pre>538</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> pub fn ui(&amp;self) -&gt; Ui&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L539' href='#L539'><pre>539</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> Ui { client: self }</pre></td></tr><tr><td class='line-number'><a name='L540' href='#L540'><pre>540</pre></a></td><td class='covered-line'><pre>21</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::ui</pre></div></div></td></tr><tr><td class='line-number'><a name='L541' href='#L541'><pre>541</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L542' href='#L542'><pre>542</pre></a></td><td class='uncovered-line'></td><td class='code'><pre> /// Access API functions related to the virtual camera.</pre></td></tr><tr><td class='line-number'><a name='L543' href='#L543'><pre>543</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn virtual_cam(&amp;self) -&gt; VirtualCam&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L544' href='#L544'><pre>544</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> VirtualCam { client: self }</pre></td></tr><tr><td class='line-number'><a name='L545' href='#L545'><pre>545</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client&gt;::virtual_cam</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L543' href='#L543'><pre>543</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> pub fn virtual_cam(&amp;self) -&gt; VirtualCam&lt;&apos;_&gt; {</pre></td></tr><tr><td class='line-number'><a name='L544' href='#L544'><pre>544</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> VirtualCam { client: self }</pre></td></tr><tr><td class='line-number'><a name='L545' href='#L545'><pre>545</pre></a></td><td class='covered-line'><pre>19</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client&gt;::virtual_cam</pre></div></div></td></tr><tr><td class='line-number'><a name='L546' href='#L546'><pre>546</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L547' href='#L547'><pre>547</pre></a></td><td class='uncovered-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L548' href='#L548'><pre>548</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>impl Drop for Client {</pre></td></tr><tr><td class='line-number'><a name='L549' href='#L549'><pre>549</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> fn drop(&amp;mut self) {</pre></td></tr><tr><td class='line-number'><a name='L550' href='#L550'><pre>550</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> // We simply drop the future as the background task has been aborted but we have no way here</pre></td></tr><tr><td class='line-number'><a name='L551' href='#L551'><pre>551</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> // to wait for it to fully shut down (except spinning up a new tokio runtime).</pre></td></tr><tr><td class='line-number'><a name='L552' href='#L552'><pre>552</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> drop(self.disconnect());</pre></td></tr><tr><td class='line-number'><a name='L553' href='#L553'><pre>553</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre><div class='expansion-view'><div class='centered'><table><div class='source-name-title'><pre>&lt;obws::client::Client as core::ops::drop::Drop&gt;::drop</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></tr><tr><td class='line-number'><a name='L549' href='#L549'><pre>549</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> fn drop(&amp;mut self) {</pre></td></tr><tr><td class='line-number'><a name='L550' href='#L550'><pre>550</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> // We simply drop the future as the background task has been aborted but we have no way here</pre></td></tr><tr><td class='line-number'><a name='L551' href='#L551'><pre>551</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> // to wait for it to fully shut down (except spinning up a new tokio runtime).</pre></td></tr><tr><td class='line-number'><a name='L552' href='#L552'><pre>552</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> drop(self.disconnect());</pre></td></tr><tr><td class='line-number'><a name='L553' href='#L553'><pre>553</pre></a></td><td class='covered-line'><pre>18</pre></td><td class='code'><pre> }</pre></td></tr></table></div></div><div class='expansion-view'><div class='source-name-title'><pre>Unexecuted instantiation: &lt;obws::client::Client as core::ops::drop::Drop&gt;::drop</pre></div></div></td></tr><tr><td class='line-number'><a name='L554' href='#L554'><pre>554</pre></a></td><td class='uncovered-line'></td><td class='code'><pre>}</pre></td></tr></table></div></body></html>