diesel 文档中的 `tags` 变量来自什么?

What does the `tags` variable come from in the diesel documentation?

我正在查看此页面上的官方 Diesel 文档:https://docs.diesel.rs/diesel/expression_methods/trait.PgArrayExpressionMethods.html#example。该示例使用变量 tags,但我看不到它的定义位置。我应该如何理解这段代码?

let cool_posts = posts.select(id)
    .filter(tags.contains(vec!["cool"]))
    .load::<i32>(&conn)?;
assert_eq!(vec![1], cool_posts);

let amazing_posts = posts.select(id)
    .filter(tags.contains(vec!["cool", "amazing"]))
    .load::<i32>(&conn)?;

tags变量从何而来?

Rust 文档中的示例可以使用 # 隐藏部分代码。这通常是为了减少重复样板的噪音,例如 main 函数和导入。

如果您查看 the source 该特征,您可以看到完整代码包含:

/// # table! {
/// #     posts {
/// #         id -> Integer,
/// #         tags -> Array<VarChar>,
/// #     }
/// # }

# 开头的行未在文档中呈现,但在您 运行 文档测试时仍会编译。

据推测,在 Diesel 示例的上下文中,这很常见,或者可能被认为足够“明显”,以至于作者认为没有它,示例会更清晰。这可能是一个见仁见智的问题,并不是每个人都会同意。