Skip to content

Commit 2abc66d

Browse files
committed
ExecutableProvider::exec now consumes self to allow nested types to move content out of RemoteProvider
1 parent b723285 commit 2abc66d

File tree

6 files changed

+19
-19
lines changed

6 files changed

+19
-19
lines changed

core/src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ use errors::*;
3030
use erased_serde::Serialize;
3131

3232
pub trait ExecutableProvider<'de>: serde::Serialize + serde::Deserialize<'de> {
33-
// It'd be nice to return Result<Serialize> here someday...
33+
// @todo It'd be nice to return Result<Serialize> here someday...
3434
// See https://github.com/rust-lang/rfcs/issues/518.
35-
fn exec(&self, &host::Host) -> Result<Box<Serialize>>;
35+
fn exec(self, &host::Host) -> Result<Box<Serialize>>;
3636
}
3737

3838
#[derive(Serialize, Deserialize)]
@@ -41,9 +41,9 @@ pub enum RemoteProvider {
4141
}
4242

4343
impl <'de>ExecutableProvider<'de> for RemoteProvider {
44-
fn exec(&self, host: &host::Host) -> Result<Box<Serialize>> {
45-
match *self {
46-
RemoteProvider::Telemetry(ref p) => p.exec(host)
44+
fn exec(self, host: &host::Host) -> Result<Box<Serialize>> {
45+
match self {
46+
RemoteProvider::Telemetry(p) => p.exec(host)
4747
}
4848
}
4949
}

core/src/telemetry/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ pub enum RemoteProvider {
3232
}
3333

3434
impl <'de>ExecutableProvider<'de> for RemoteProvider {
35-
fn exec(&self, host: &Host) -> Result<Box<Serialize>> {
36-
match *self {
37-
RemoteProvider::Centos(ref p) => p.exec(host),
38-
RemoteProvider::Debian(ref p) => p.exec(host),
39-
RemoteProvider::Freebsd(ref p) => p.exec(host),
40-
RemoteProvider::Macos(ref p) => p.exec(host)
35+
fn exec(self, host: &Host) -> Result<Box<Serialize>> {
36+
match self {
37+
RemoteProvider::Centos(p) => p.exec(host),
38+
RemoteProvider::Debian(p) => p.exec(host),
39+
RemoteProvider::Freebsd(p) => p.exec(host),
40+
RemoteProvider::Macos(p) => p.exec(host)
4141
}
4242
}
4343
}

core/src/telemetry/providers/centos.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ pub enum RemoteProvider {
2222
}
2323

2424
impl <'de>ExecutableProvider<'de> for RemoteProvider {
25-
fn exec(&self, host: &Host) -> Result<Box<Serialize>> {
26-
match *self {
25+
fn exec(self, host: &Host) -> Result<Box<Serialize>> {
26+
match self {
2727
RemoteProvider::Available => Ok(Box::new(Centos::available(host))),
2828
RemoteProvider::Load => {
2929
let t: serializable::Telemetry = Centos::load(host)?.into();

core/src/telemetry/providers/debian.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ pub enum RemoteProvider {
2222
}
2323

2424
impl <'de>ExecutableProvider<'de> for RemoteProvider {
25-
fn exec(&self, host: &Host) -> Result<Box<Serialize>> {
26-
match *self {
25+
fn exec(self, host: &Host) -> Result<Box<Serialize>> {
26+
match self {
2727
RemoteProvider::Available => Ok(Box::new(Debian::available(host))),
2828
RemoteProvider::Load => {
2929
let t: serializable::Telemetry = Debian::load(host)?.into();

core/src/telemetry/providers/freebsd.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ pub enum RemoteProvider {
2424
}
2525

2626
impl <'de>ExecutableProvider<'de> for RemoteProvider {
27-
fn exec(&self, host: &Host) -> Result<Box<Serialize>> {
28-
match *self {
27+
fn exec(self, host: &Host) -> Result<Box<Serialize>> {
28+
match self {
2929
RemoteProvider::Available => Ok(Box::new(Freebsd::available(host))),
3030
RemoteProvider::Load => {
3131
let t: serializable::Telemetry = Freebsd::load(host)?.into();

core/src/telemetry/providers/macos.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ pub enum RemoteProvider {
2222
}
2323

2424
impl <'de>ExecutableProvider<'de> for RemoteProvider {
25-
fn exec(&self, host: &Host) -> Result<Box<Serialize>> {
26-
match *self {
25+
fn exec(self, host: &Host) -> Result<Box<Serialize>> {
26+
match self {
2727
RemoteProvider::Available => Ok(Box::new(Macos::available(host))),
2828
RemoteProvider::Load => {
2929
let t: serializable::Telemetry = Macos::load(host)?.into();

0 commit comments

Comments
 (0)