string - 在 Rust 中查询结构向量

标签 string vector struct filter rust

我的结构如下。我需要从这个结构中过滤数据以用于 2 个场景

pub struct Access {
    role: String,
    users: Vec<String>,
}

pub struct Department_Access {
    department: String,
    department_id: String,
    access: Vec<Access>,
}

场景 1

我正在获取部门 ID 和用户(单个用户)作为输入,我应该过滤所有部门各自用户包含的访问权限并将整个数据返回到 UI。我尝试如下,其抛出错误为“预期bool,发现 `core::iter::adapters::Filter bool>”。如何有效地做到这一点?

  let access_data = get_access_data();
    let user_access: Vec<ent::Department_Access> = access_data
        .into_iter()
        .filter(|r| r.department_id == dept_id)
        .into_iter()
        .filter(|a| a.access.into_iter().filter(|b| b.members.contains(user)))
        .collect();

场景 2

在另一个功能中,我单独接收userdepartment作为参数,它应该在上面的结构中查询并返回他有权访问的所有department_id,我正在努力解决这个问题进行基本形式的查询,也需要您的帮助进行查询!提前致谢

最佳答案

您想使用any :

    let user_access: Vec<Department_Access> = access_data
        .into_iter()
        .filter(|r| r.department_id == dept_id)
        .filter(|a| a.access.iter().any(|b| b.users.contains(&user)))
        .collect();

另请记住,into_iter 会消耗该值;您只想在过滤器中使用iter()

关于string - 在 Rust 中查询结构向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67770275/

相关文章:

C:指向结构定义中结构的指针

Python 套接字接收 - 由于收到的消息长度极长而卡在 While 循环中

c++ - 基于结构成员数据从 vector 返回结构项的函数

string - 如何将 PChar 的一部分提取到字符串中?

java - 读取文件和写入新文件时替换与特定值不同的字符

node.js - NodeJS : Convert string X, XXX.XX float

vector 的 C++ vector

c++ - 为什么从 vector 打印图像像素值会返回无意义?

audio - 3D空间中声源位置的计算

Objective-C 相当于 Swift "\(variable)"