il2cpp_dumper/output/
script_json.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub struct ScriptMethod {
5 #[serde(rename = "Address")]
6 pub address: u64,
7 #[serde(rename = "Name")]
8 pub name: String,
9 #[serde(rename = "Signature")]
10 pub signature: String,
11 #[serde(rename = "TypeSignature")]
12 pub type_signature: String,
13 #[serde(rename = "DotNetSignature", skip_serializing_if = "Option::is_none")]
14 pub dotnet_signature: Option<String>,
15 #[serde(rename = "Group", skip_serializing_if = "Option::is_none")]
16 pub group: Option<String>,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct ScriptString {
21 #[serde(rename = "Address")]
22 pub address: u64,
23 #[serde(rename = "Value")]
24 pub value: String,
25 #[serde(rename = "Name", skip_serializing_if = "Option::is_none")]
26 pub name: Option<String>,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct ScriptMetadata {
31 #[serde(rename = "Address")]
32 pub address: u64,
33 #[serde(rename = "Name")]
34 pub name: String,
35 #[serde(rename = "Signature", skip_serializing_if = "Option::is_none")]
36 pub signature: Option<String>,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
40pub struct ScriptMetadataMethod {
41 #[serde(rename = "Address")]
42 pub address: u64,
43 #[serde(rename = "Name")]
44 pub name: String,
45 #[serde(rename = "MethodAddress")]
46 pub method_address: u64,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
50pub struct ScriptTypeInfo {
51 #[serde(rename = "Address")]
52 pub address: u64,
53 #[serde(rename = "Name")]
54 pub name: String,
55 #[serde(rename = "Type")]
56 pub type_str: String,
57 #[serde(rename = "DotNetType", skip_serializing_if = "Option::is_none")]
58 pub dotnet_type: Option<String>,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct ScriptFieldInfo {
63 #[serde(rename = "Address")]
64 pub address: u64,
65 #[serde(rename = "Name")]
66 pub name: String,
67 #[serde(rename = "Value")]
68 pub value: String,
69}
70
71#[derive(Debug, Clone, Default, Serialize, Deserialize)]
72pub struct ScriptJson {
73 #[serde(rename = "ScriptMethod")]
74 pub script_methods: Vec<ScriptMethod>,
75 #[serde(rename = "ScriptString")]
76 pub script_strings: Vec<ScriptString>,
77 #[serde(rename = "ScriptMetadata")]
78 pub script_metadata: Vec<ScriptMetadata>,
79 #[serde(rename = "ScriptMetadataMethod")]
80 pub script_metadata_methods: Vec<ScriptMetadataMethod>,
81 #[serde(rename = "Addresses")]
82 pub addresses: Vec<u64>,
83 #[serde(rename = "TypeInfoPointers", skip_serializing_if = "Vec::is_empty")]
84 pub type_info_pointers: Vec<ScriptTypeInfo>,
85 #[serde(rename = "TypeRefPointers", skip_serializing_if = "Vec::is_empty")]
86 pub type_ref_pointers: Vec<ScriptTypeInfo>,
87 #[serde(rename = "FieldInfos", skip_serializing_if = "Vec::is_empty")]
88 pub field_infos: Vec<ScriptFieldInfo>,
89 #[serde(rename = "FieldRvas", skip_serializing_if = "Vec::is_empty")]
90 pub field_rvas: Vec<ScriptFieldInfo>,
91}
92
93impl ScriptJson {
94 pub fn new() -> Self {
95 Self::default()
96 }
97
98 pub fn to_json(&self) -> Result<String, serde_json::Error> {
99 serde_json::to_string_pretty(self)
100 }
101}
102
103#[derive(Debug, Clone, Serialize, Deserialize)]
104pub struct StringLiteralEntry {
105 pub index: usize,
106 pub value: String,
107}