1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! `#[tx_cst(...)]` 字段属性解析
//!
//! 支持两种写法:
//! - `#[tx_cst(expr)]` — 用表达式赋值该字段
//! - `#[tx_cst(skip)]` — 跳过注入,使用 `Default::default()`
use ;
/// derive 辅助属性名
pub const TX_CST: &str = "tx_cst";
/// 从属性列表中提取注入表达式
///
/// 遍历属性列表查找标识为 `tx_cst` 的属性,若找到则解析其参数为表达式返回。
///
/// # 返回值
/// - `Ok(Some(expr))` — 找到 `#[tx_cst(expr)]`
/// - `Ok(None)` — 未找到 `tx_cst` 属性
/// - `Err(_)` — 解析失败
/// 检查属性列表中是否包含 `#[tx_cst(skip)]` 属性