Browse Source

Use stable sled-extensions

tags/background-jobs-actix-v0.6.0
Arlo (Hyena) 4 weeks ago
parent
commit
b017803b74

+ 1
- 1
examples/actix-example/Cargo.toml View File

@@ -11,6 +11,6 @@ actix = "0.8"
background-jobs = { version = "0.6.0", path = "../.." }
failure = "0.1"
futures = "0.1"
sled-extensions = { version = "0.1.0", git = "https://git.asonix.dog/asonix/sled-extensions" }
sled-extensions = "0.1.0"
serde = "1.0"
serde_derive = "1.0"

+ 1
- 0
jobs-actix/src/lib.rs View File

@@ -28,6 +28,7 @@ pub struct ServerConfig<S> {
impl<S> ServerConfig<S>
where
S: Storage + Sync + 'static,
S::Error: Send + Sync,
{
/// Create a new ServerConfig
pub fn new(storage: S) -> Self {

+ 5
- 3
jobs-actix/src/storage.rs View File

@@ -1,5 +1,5 @@
use background_jobs_core::{JobInfo, NewJobInfo, ReturnJobInfo, Stats, Storage};
use failure::{Error, Fail};
use failure::Error;

pub(crate) trait ActixStorage {
fn new_job(&mut self, job: NewJobInfo) -> Result<u64, Error>;
@@ -14,12 +14,14 @@ pub(crate) trait ActixStorage {
pub(crate) struct StorageWrapper<S, E>(pub(crate) S)
where
S: Storage<Error = E>,
E: Fail;
S::Error: Send,
E: std::error::Error + Send;

impl<S, E> ActixStorage for StorageWrapper<S, E>
where
S: Storage<Error = E>,
E: Fail,
S::Error: Send,
E: std::error::Error + Send + Sync + 'static,
{
fn new_job(&mut self, job: NewJobInfo) -> Result<u64, Error> {
self.0.new_job(job).map_err(Error::from)

+ 8
- 3
jobs-core/src/storage.rs View File

@@ -18,7 +18,6 @@
*/

use chrono::offset::Utc;
use failure::Fail;
use log::error;

use crate::{JobInfo, NewJobInfo, ReturnJobInfo, Stats};
@@ -31,7 +30,7 @@ use crate::{JobInfo, NewJobInfo, ReturnJobInfo, Stats};
/// the `background-jobs-sled-storage` crate.
pub trait Storage: Clone + Send {
/// The error type used by the storage mechansim.
type Error: Fail;
type Error: std::error::Error;

/// This method generates unique IDs for jobs
fn generate_id(&mut self) -> Result<u64, Self::Error>;
@@ -265,7 +264,7 @@ pub mod memory_storage {
}
}

#[derive(Clone, Debug, Fail)]
#[derive(Clone, Debug)]
pub enum Never {}

impl fmt::Display for Never {
@@ -274,6 +273,12 @@ pub mod memory_storage {
}
}

impl std::error::Error for Never {
fn description(&self) -> &str {
match *self {}
}
}

#[derive(Clone, Debug, Fail)]
#[fail(display = "Created too many storages, can't generate any more IDs")]
pub struct TooManyStoragesError;

+ 1
- 1
jobs-sled/Cargo.toml View File

@@ -13,4 +13,4 @@ edition = "2018"
[dependencies]
background-jobs-core = { version = "0.6", path = "../jobs-core" }
chrono = "0.4"
sled-extensions = { version = "0.1", git = "https://git.asonix.dog/asonix/sled-extensions", features = ["bincode", "cbor"] }
sled-extensions = { version = "0.1", features = ["bincode", "cbor"] }

+ 2
- 2
jobs-sled/src/lib.rs View File

@@ -1,8 +1,8 @@
use background_jobs_core::{JobInfo, Stats, Storage};
use chrono::offset::Utc;
use sled_extensions::{structured::{cbor, bincode::Tree}, Db, DbExt};
use sled_extensions::{bincode::Tree, cbor, Db, DbExt};

pub use sled_extensions::error::{Result, Error};
pub use sled_extensions::{Error, Result};

#[derive(Clone)]
pub struct SledStorage {

Loading…
Cancel
Save