Cargo fix
This commit is contained in:
parent
5505c09db4
commit
9bab810b91
38 changed files with 235 additions and 235 deletions
|
|
@ -3,64 +3,64 @@ use std::fmt::Display;
|
|||
use resources::Resource;
|
||||
|
||||
pub trait Action {
|
||||
fn run(&self) -> Result<(), Box<Error>>;
|
||||
fn run(&self) -> Result<(), Box<dyn Error>>;
|
||||
}
|
||||
|
||||
pub trait SymbolRunner {
|
||||
fn run_symbol(&self, symbol: &Symbol) -> Result<(), Box<Error>>;
|
||||
fn run_symbol(&self, symbol: &dyn Symbol) -> Result<(), Box<dyn Error>>;
|
||||
}
|
||||
|
||||
impl<R: SymbolRunner + ?Sized> SymbolRunner for Box<R> {
|
||||
fn run_symbol(&self, symbol: &Symbol) -> Result<(), Box<Error>> {
|
||||
fn run_symbol(&self, symbol: &dyn Symbol) -> Result<(), Box<dyn Error>> {
|
||||
(**self).run_symbol(symbol)
|
||||
}
|
||||
}
|
||||
|
||||
// Symbol
|
||||
pub trait Symbol: Display {
|
||||
fn target_reached(&self) -> Result<bool, Box<Error>>;
|
||||
fn execute(&self) -> Result<(), Box<Error>>;
|
||||
fn target_reached(&self) -> Result<bool, Box<dyn Error>>;
|
||||
fn execute(&self) -> Result<(), Box<dyn Error>>;
|
||||
fn get_prerequisites(&self) -> Vec<Resource> {
|
||||
vec![]
|
||||
}
|
||||
fn provides(&self) -> Option<Vec<Resource>> {
|
||||
None
|
||||
}
|
||||
fn as_action<'a>(&'a self, runner: &'a SymbolRunner) -> Box<Action + 'a>;
|
||||
fn into_action<'a>(self: Box<Self>, runner: &'a SymbolRunner) -> Box<Action + 'a> where Self: 'a;
|
||||
fn as_action<'a>(&'a self, runner: &'a dyn SymbolRunner) -> Box<dyn Action + 'a>;
|
||||
fn into_action<'a>(self: Box<Self>, runner: &'a dyn SymbolRunner) -> Box<dyn Action + 'a> where Self: 'a;
|
||||
}
|
||||
|
||||
// SymbolAction
|
||||
pub struct SymbolAction<'a, S: Symbol + 'a> {
|
||||
runner: &'a SymbolRunner,
|
||||
runner: &'a dyn SymbolRunner,
|
||||
symbol: &'a S
|
||||
}
|
||||
|
||||
impl<'a, S: Symbol> SymbolAction<'a, S> {
|
||||
pub fn new(runner: &'a SymbolRunner, symbol: &'a S) -> Self {
|
||||
pub fn new(runner: &'a dyn SymbolRunner, symbol: &'a S) -> Self {
|
||||
Self { runner, symbol }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, S: Symbol> Action for SymbolAction<'a, S> {
|
||||
fn run(&self) -> Result<(), Box<Error>> {
|
||||
fn run(&self) -> Result<(), Box<dyn Error>> {
|
||||
self.runner.run_symbol(self.symbol)
|
||||
}
|
||||
}
|
||||
|
||||
pub struct OwnedSymbolAction<'a, S: Symbol + 'a> {
|
||||
runner: &'a SymbolRunner,
|
||||
runner: &'a dyn SymbolRunner,
|
||||
symbol: S
|
||||
}
|
||||
|
||||
impl<'a, S: Symbol + 'a> OwnedSymbolAction<'a, S> {
|
||||
pub fn new(runner: &'a SymbolRunner, symbol: S) -> Self {
|
||||
pub fn new(runner: &'a dyn SymbolRunner, symbol: S) -> Self {
|
||||
Self { runner, symbol }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, S: Symbol + 'a> Action for OwnedSymbolAction<'a, S> {
|
||||
fn run(&self) -> Result<(), Box<Error>> {
|
||||
fn run(&self) -> Result<(), Box<dyn Error>> {
|
||||
self.runner.run_symbol(&self.symbol)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue