#exercise #entity #german #facilitate #learning #macro

macro rusty_german_entity_macro

用于简化德语学习项目练习实现的自定义宏

2个版本

0.1.1 2021年8月3日
0.1.0 2021年8月3日

#13 in #german

Apache-2.0

7KB
76 代码行

项目简介

用于简化德语学习项目练习实现的自定义宏。它在rusty_german中应用。


lib.rs:

RustyEntity

用于简化Exercise结构体的实现。对于结构体字段,可用的属性有:description(描述)、expected_result(预期结果)、expected_results(预期结果列表)和sort(排序)。

示例

use rusty_german_entity_macro::RustyEntity;

#[derive(RustyEntity)]
struct PrepositionExercise {
    #[entity(description)]
    prepo: String,
    #[entity(expected_result)]
    case: String,
}

这将生成如下实现

use rusty_german_types::Exercise;

struct PrepositionExercise {
    prepo: String,
    case: String,
}
impl Exercise for PrepositionExercise {
    fn get_description(&self) -> String {
        self.prepo.to_owned()
    }

    fn get_expected_result(&self) -> String {
        self.case.to_owned()
    }
}

依赖

~1.5MB
~36K SLoC