forked from alemi/upub
feat(apb): optional Send marker on Base, on by default
This commit is contained in:
parent
9d59c73c59
commit
f4db94db27
3 changed files with 16 additions and 3 deletions
|
@ -24,13 +24,14 @@ sea-orm = { version = "0.12", optional = true }
|
||||||
reqwest = { version = "0.12", features = ["json"], optional = true }
|
reqwest = { version = "0.12", features = ["json"], optional = true }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["activitypub-miscellaneous-terms"]
|
default = ["activitypub-miscellaneous-terms", "send"]
|
||||||
# extensions
|
# extensions
|
||||||
activitypub-miscellaneous-terms = [] # https://swicg.github.io/miscellany/
|
activitypub-miscellaneous-terms = [] # https://swicg.github.io/miscellany/
|
||||||
activitypub-counters = [] # https://ns.alemi.dev/as/counters/#
|
activitypub-counters = [] # https://ns.alemi.dev/as/counters/#
|
||||||
activitypub-fe = [] # https://ns.alemi.dev/as/fe/#
|
activitypub-fe = [] # https://ns.alemi.dev/as/fe/#
|
||||||
litepub = [] # incomplete, https://litepub.social/
|
litepub = [] # incomplete, https://litepub.social/
|
||||||
# builtin utils
|
# builtin utils
|
||||||
|
send = []
|
||||||
orm = ["dep:sea-orm"]
|
orm = ["dep:sea-orm"]
|
||||||
fetch = ["dep:reqwest"]
|
fetch = ["dep:reqwest"]
|
||||||
# providers
|
# providers
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
#[cfg(feature = "send")]
|
||||||
|
pub trait MaybeSend : Send {}
|
||||||
|
#[cfg(feature = "send")]
|
||||||
|
impl<T : Send> MaybeSend for T {}
|
||||||
|
|
||||||
|
|
||||||
|
#[cfg(not(feature = "send"))]
|
||||||
|
pub trait MaybeSend {}
|
||||||
|
#[cfg(not(feature = "send"))]
|
||||||
|
impl<T> MaybeSend for T {}
|
||||||
|
|
||||||
|
|
||||||
#[derive(Debug, thiserror::Error)]
|
#[derive(Debug, thiserror::Error)]
|
||||||
#[error("invalid type value")]
|
#[error("invalid type value")]
|
||||||
pub struct TypeValueError;
|
pub struct TypeValueError;
|
||||||
|
|
|
@ -8,13 +8,13 @@ crate::strenum! {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait Base {
|
pub trait Base : crate::macros::MaybeSend {
|
||||||
fn id(&self) -> Option<&str> { None }
|
fn id(&self) -> Option<&str> { None }
|
||||||
fn base_type(&self) -> Option<BaseType> { None }
|
fn base_type(&self) -> Option<BaseType> { None }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pub trait BaseMut {
|
pub trait BaseMut : crate::macros::MaybeSend {
|
||||||
fn set_id(self, val: Option<&str>) -> Self;
|
fn set_id(self, val: Option<&str>) -> Self;
|
||||||
fn set_base_type(self, val: Option<BaseType>) -> Self;
|
fn set_base_type(self, val: Option<BaseType>) -> Self;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue