radix_engine_interface/types/
invocation.rs

1use crate::internal_prelude::*;
2use crate::types::*;
3use core::fmt::Formatter;
4use radix_common::address::{AddressDisplayContext, NO_NETWORK};
5use radix_rust::ContextualDisplay;
6use sbor::rust::prelude::*;
7use sbor::rust::string::String;
8
9#[derive(Clone, Eq, PartialEq, ScryptoSbor)]
10pub struct FnIdentifier {
11    pub blueprint_id: BlueprintId,
12    pub ident: String,
13}
14
15impl<'a> ContextualDisplay<AddressDisplayContext<'a>> for FnIdentifier {
16    type Error = fmt::Error;
17
18    fn contextual_format<F: fmt::Write>(
19        &self,
20        f: &mut F,
21        context: &AddressDisplayContext<'a>,
22    ) -> Result<(), Self::Error> {
23        write!(
24            f,
25            "{}:{:?}",
26            self.blueprint_id.display(*context),
27            self.ident,
28        )
29    }
30}
31
32impl Debug for FnIdentifier {
33    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
34        write!(f, "{}", self.display(NO_NETWORK))
35    }
36}