llmcc_python/descriptor/
call.rs1#[derive(Debug, Clone)]
2pub struct CallDescriptor {
3 pub target: CallTarget,
4 pub arguments: Vec<CallArgument>,
5}
6
7#[derive(Debug, Clone)]
8pub enum CallTarget {
9 Function(String),
10 Method(String, String), Constructor(String), }
13
14#[derive(Debug, Clone)]
15pub struct CallArgument {
16 pub name: Option<String>,
17 pub value: String,
18}
19
20impl CallDescriptor {
21 pub fn new(target: CallTarget) -> Self {
22 Self {
23 target,
24 arguments: Vec::new(),
25 }
26 }
27
28 pub fn add_argument(&mut self, arg: CallArgument) {
29 self.arguments.push(arg);
30 }
31}
32
33impl CallArgument {
34 pub fn new(value: String) -> Self {
35 Self { name: None, value }
36 }
37
38 pub fn with_name(mut self, name: String) -> Self {
39 self.name = Some(name);
40 self
41 }
42}