跳转至

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 的日志级别解析。

查看固定 commit 源码 · 返回证据索引