miden_assembly_syntax/ast/instruction/
inline_call.rs1use alloc::sync::Arc;
2
3use miden_debug_types::FileLineCol;
4#[cfg(feature = "serde")]
5use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, Eq, PartialEq)]
9#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
10pub struct DebugInlineCallInfo {
11 name: Arc<str>,
12 linkage_name: Option<Arc<str>>,
13 declaration: FileLineCol,
14 call_site: FileLineCol,
15}
16
17impl DebugInlineCallInfo {
18 pub fn new(
19 name: impl Into<Arc<str>>,
20 declaration: FileLineCol,
21 call_site: FileLineCol,
22 ) -> Self {
23 Self {
24 name: name.into(),
25 linkage_name: None,
26 declaration,
27 call_site,
28 }
29 }
30
31 pub fn with_linkage_name(mut self, linkage_name: impl Into<Arc<str>>) -> Self {
32 self.linkage_name = Some(linkage_name.into());
33 self
34 }
35
36 pub fn name(&self) -> &str {
37 &self.name
38 }
39
40 pub fn linkage_name(&self) -> Option<&str> {
41 self.linkage_name.as_deref()
42 }
43
44 pub fn declaration(&self) -> &FileLineCol {
45 &self.declaration
46 }
47
48 pub fn call_site(&self) -> &FileLineCol {
49 &self.call_site
50 }
51}