prax_schema/ast/
procedure.rs1use serde::{Deserialize, Serialize};
2
3use super::{Ident, Span};
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
7pub struct Procedure {
8 pub name: Ident,
9 pub is_function: bool,
10 pub body: String,
11 pub span: Span,
12 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub source_id: Option<crate::loader::SourceId>,
14}
15
16impl Procedure {
17 pub fn new(name: Ident, is_function: bool, body: String, span: Span) -> Self {
18 Self {
19 name,
20 is_function,
21 body,
22 span,
23 source_id: None,
24 }
25 }
26
27 pub fn name(&self) -> &str {
28 self.name.as_str()
29 }
30}