1个不稳定版本
0.0.1 | 2019年7月28日 |
---|
#389 in #web-server
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