是否有一种简单的方法来注释结构中的字段,以便在导出PartialEq
特征时忽略它们?例如:
#[derive(PartialEq,Eq)]
pub struct UndirectedGraph {
nodes: HashMap<NodeIdx, UndirectedNode>,
// mapping of degree to nodes of that degree
degree_index: Vec<HashSet<NodeIdx>>,
}
我希望两个无向图在具有相同nodes
字段时被视为相等,但degree_index
字段可能不同(向量可能在末尾包含额外的空哈希集)。 / p>
显然我可以手动实现特征,但自动推导会更简单。
答案 0 :(得分:6)
不,目前无法做到这一点,我怀疑它会得到支持。
您可以考虑将要比较的字段转换为派生的子结构,这将使较大结构的实现变得微不足道。
答案 1 :(得分:1)
答案 2 :(得分:0)
如果您需要更复杂的#[derive]
形式,我也建议使用derivative
条板箱。
如果只需要一次或两次这样的事情,那么手动实现所需的特征而不是派生它们可能会更容易。 PartialEq
和Eq
是very easy来实现自己的目标:
impl PartialEq for UndirectedGraph {
fn eq(&self, other: &Self) -> bool {
self.nodes == other.nodes
}
}
impl Eq for UndirectedGraph {}