2016-12-07 55 views
3

是否有一种简单的方法来注释结构中的字段,以便在派生PartialEq特征时忽略它们?例如:派生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字段可以不同(该载体可以包含额外的空散列集在最后)。

显然我可以手动实现这个特征,但是自动推导会更简单。

+4

它可以用[我的箱子](https://mcarton.github.io/rust-derivative/cmp.html#ignoring-a-field)来完成,但不能用标准派生来完成。 – mcarton

回答

5

不,目前没有办法做到这一点,我怀疑它会被支持。

你可以考虑将你想要比较的字段放入一个派生的子结构中,这会使较大结构的实现更简单。