blurmock/
fake_discovery_session.rs1use fake_adapter::FakeBluetoothAdapter;
2use std::error::Error;
3use std::sync::Arc;
4
5#[derive(Debug)]
6pub struct FakeBluetoothDiscoverySession {
7 adapter: Arc<FakeBluetoothAdapter>,
8}
9
10impl FakeBluetoothDiscoverySession {
11 pub fn create_session(adapter: Arc<FakeBluetoothAdapter>) -> Result<FakeBluetoothDiscoverySession, Box<Error>> {
12 Ok(FakeBluetoothDiscoverySession::new(adapter))
13 }
14
15 fn new(adapter: Arc<FakeBluetoothAdapter>) -> FakeBluetoothDiscoverySession {
16 FakeBluetoothDiscoverySession {
17 adapter: adapter,
18 }
19 }
20
21 pub fn get_adapter(&self) -> Arc<FakeBluetoothAdapter> {
22 self.adapter.clone()
23 }
24
25 pub fn start_discovery(&self) -> Result<(), Box<Error>> {
26 match self.adapter.get_can_start_discovery() {
27 Ok(false) => Err(Box::from("Failed to start discovery session")),
28 Ok(true) => Ok(()),
29 Err(err) => Err(err),
30 }
31 }
32
33 pub fn stop_discovery(&self) -> Result<(), Box<Error>> {
34 match self.adapter.get_can_stop_discovery() {
35 Ok(false) => Err(Box::from("Failed to stop discovery session")),
36 Ok(true) => Ok(()),
37 Err(err) => Err(err),
38 }
39 }
40}