1个不稳定版本

0.0.1 2019年7月28日

#389 in #web-server


用于 mammoth-setup

MIT 协议

5KB

Mammoth设置

项目'Mammoth'是尝试创建一个易于使用的Rust语言中的Web服务器可执行文件的尝试。

这个库包含所有有用的Mammoth开发宏。

该项目基于actix-web框架。

如何使用

目前,属性宏仅在nightly rust中受支持。为了启用属性宏的使用,请在文件开头写下以下内容。

#![feature(custom_attribute)]

然后,创建一个结构体以实现MammothInterface特质,并应用属性mammoth_module

// The main structure defining the module interface.
#[mammoth_module(constructor_fn)]
struct MyModule {
    /* some fields */
}

// The `MammothInterface` trait implementation.
impl MammothInterface for MyModule {
    /* implementation */
}

// The external `MyModule` constructor used to instantiate the module interface.
pub fn constructor_fn(cfg: Option<toml::Value>) -> MyModule {
    /* constructor */
}

请注意,constructor_fn函数是必需的,因为它在mammoth_module宏中被用于构建所需的结构。

其他注意事项

这是该库的早期阶段,可能有很大的变化。

目前,宏mammoth_module为动态库创建了两个入口点,即用于构建内部模块的__construct函数和用于获取底层mammoth-setup crate版本的__version函数。后者是确保Mammoth应用程序与其模块/插件之间某种一致性所必需的。

依赖项

~2MB
~50K SLoC