pyo3_introspection/
model.rs

1#[derive(Debug, Eq, PartialEq, Clone, Hash)]
2pub struct Module {
3    pub name: String,
4    pub modules: Vec<Module>,
5    pub classes: Vec<Class>,
6    pub functions: Vec<Function>,
7}
8
9#[derive(Debug, Eq, PartialEq, Clone, Hash)]
10pub struct Class {
11    pub name: String,
12}
13
14#[derive(Debug, Eq, PartialEq, Clone, Hash)]
15pub struct Function {
16    pub name: String,
17    pub arguments: Arguments,
18}
19
20#[derive(Debug, Eq, PartialEq, Clone, Hash)]
21pub struct Arguments {
22    /// Arguments before /
23    pub positional_only_arguments: Vec<Argument>,
24    /// Regular arguments (between / and *)
25    pub arguments: Vec<Argument>,
26    /// *vararg
27    pub vararg: Option<VariableLengthArgument>,
28    /// Arguments after *
29    pub keyword_only_arguments: Vec<Argument>,
30    /// **kwarg
31    pub kwarg: Option<VariableLengthArgument>,
32}
33
34#[derive(Debug, Eq, PartialEq, Clone, Hash)]
35pub struct Argument {
36    pub name: String,
37    /// Default value as a Python expression
38    pub default_value: Option<String>,
39}
40
41/// A variable length argument ie. *vararg or **kwarg
42#[derive(Debug, Eq, PartialEq, Clone, Hash)]
43pub struct VariableLengthArgument {
44    pub name: String,
45}
⚠️ Internal Docs ⚠️ Not Public API 👉 Official Docs Here