2016-12-07 54 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

不,目前沒有辦法做到這一點,我懷疑它會被支持。

你可以考慮將你想要比較的字段放入一個派生的子結構中,這會使較大結構的實現更簡單。