ev-nghttp2-expected-severity-001¶
| 字段 | 值 |
|---|---|
| 项目 | nghttp2/nghttp2 |
| 固定 commit | 85e300c79fb6 |
| 路径 | src/shrpx_log.cc |
| 行段 | L83-L91 |
| 特性 | std::expected |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-29 |
| 测试代码 | 否 |
| 发现方式 | regex |
用法¶
把用户输入的名称解析成枚举值,失败时返回 std::unexpected
为什么典型¶
错误类型是项目内的小枚举,成功路径直接返回值,调用方必须显式处理失败,不需要异常或输出参数。
摘录¶
std::expected<int, Error>
Log::get_severity_level_by_name(std::string_view name) {
for (size_t i = 0, max = array_size(SEVERITY_STR); i < max; ++i) {
if (name == SEVERITY_STR[i]) {
return static_cast<int>(i);
}
}
return std::unexpected{Error::INVALID_ARGUMENT};
}
备注¶
生产路径:nghttpx 的日志级别解析。