1 use rustc_serialize::{Decoder, Encoder};
2 use rustc_span::ExpnId;
5 rustc_index::newtype_index! {
8 DEBUG_FORMAT = "NodeId({})"
12 rustc_data_structures::define_id_collections!(NodeMap, NodeSet, NodeId);
15 pub fn placeholder_from_expn_id(expn_id: ExpnId) -> Self {
16 NodeId::from_u32(expn_id.as_u32())
19 pub fn placeholder_to_expn_id(self) -> ExpnId {
20 ExpnId::from_u32(self.as_u32())
24 impl fmt::Display for NodeId {
25 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26 fmt::Display::fmt(&self.as_u32(), f)
30 impl rustc_serialize::UseSpecializedEncodable for NodeId {
31 fn default_encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error> {
32 s.emit_u32(self.as_u32())
36 impl rustc_serialize::UseSpecializedDecodable for NodeId {
37 fn default_decode<D: Decoder>(d: &mut D) -> Result<NodeId, D::Error> {
38 d.read_u32().map(NodeId::from_u32)