#activity-stream #activity-pub

activitystreams-traits

Activity Streams 2.0 对象的特质

3 个版本 (破坏性)

0.4.0-alpha.02020年3月11日
0.2.0 2019年10月30日
0.1.0 2018年5月14日

#1764异步

每月34次 下载
用于 activitystreams-types

GPL-3.0 许可证

17KB

ActivityStreams Traits

Activity Streams 特质

这些特质不提供任何功能,除了为其他项目中创建的类型提供注解。请参阅 activitystreams-types crate 中的示例,了解这些特质如何使用。

示例

将其添加到您的 Cargo.toml

activitystreams-traits = "0.4.0-alpha.0"
serde = { version = "1.0", features = ["derive"] }
typetag = "0.1.4"

在您的项目中使用它

use activitystreams_traits::{Object, Actor};

#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Persona {
    #[serde(rename = "type")]
    kind: String,
}

// TypeTag exists so user-defined types can be deserialized generically in activitystreams-types
#[typetag::serde]
impl Object for Persona {
    fn as_any(&self) -> &(dyn Any + 'static) {
        self
    }

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static) {
        self
    }

    fn duplicate(&self) -> Box<dyn Object + 'static> {
        Box::new(self.clone())
    }
}
impl Actor for Persona {}

贡献

您可以自由地为您发现的问题提出问题。请注意,任何贡献的代码都将根据 GPLv3 许可。

许可证

版权 © 2020 Riley Trautman

ActivityStreams Traits 是自由软件:您可以在自由软件基金会发布的 GNU 通用公共许可证的条款下重新分配它和/或修改它,无论是许可证的第 3 版,还是(根据您的选择)任何后来的版本。

ActivityStreams Traits 分发时希望它是有用的,但没有提供任何保证;甚至没有隐含的对适销性或特定用途的适用性的保证。有关详细信息,请参阅 GNU 通用公共许可证。此文件是 ActivityStreams Traits 的一部分。

您应该已收到 ActivityStreams Traits 一起的 GNU 通用公共许可证副本。如果没有,请参阅 http://www.gnu.org/licenses/

依赖项

~2MB
~48K SLoC