MCPcopy Create free account
hub / github.com/WasmEdge/WasmEdge / print_record

Function print_record

utils/wasi-cpp-header/src/cpp_header.rs:174–258  ·  view source on GitHub ↗
(ret: &mut String, name: &Id, s: &RecordDatatype)

Source from the content-addressed store, hash-verified

172}
173
174fn print_record(ret: &mut String, name: &Id, s: &RecordDatatype) {
175 if let Some(repr) = s.bitflags_repr() {
176 ret.push_str(&format!(
177 "enum __wasi_{}_t : {} {{\n",
178 ident_name(name),
179 intrepr_name(repr)
180 ));
181 ret.push_str("\n");
182 for (i, member) in s.members.iter().enumerate() {
183 if !member.docs.is_empty() {
184 ret.push_str(" /**\n");
185 for line in member.docs.lines() {
186 ret.push_str(&format!(" * {}\n", line));
187 }
188 ret.push_str(" */\n");
189 }
190 ret.push_str(&format!(
191 " __WASI_{}_{} = 1ULL << {},\n",
192 ident_name(name).to_shouty_snake_case(),
193 ident_name(&member.name).to_shouty_snake_case(),
194 i,
195 ));
196 ret.push_str("\n");
197 }
198 ret.push_str(&format!(
199 "}};\nDEFINE_ENUM_OPERATORS(__wasi_{}_t)\n\n",
200 ident_name(name)
201 ));
202 ret.push_str(&format!(
203 "static_assert(sizeof(__wasi_{}_t) == {}, \"witx calculated size\");\n",
204 ident_name(name),
205 repr.mem_size()
206 ));
207 ret.push_str(&format!(
208 "static_assert(alignof(__wasi_{}_t) == {}, \"witx calculated align\");\n",
209 ident_name(name),
210 repr.mem_align()
211 ));
212 ret.push_str("\n");
213 return;
214 }
215
216 ret.push_str(&format!("struct __wasi_{}_t {{\n", ident_name(name)));
217
218 for member in &s.members {
219 if !member.docs.is_empty() {
220 ret.push_str(" /**\n");
221 for line in member.docs.lines() {
222 ret.push_str(&format!(" * {}\n", line));
223 }
224 ret.push_str(" */\n");
225 }
226 ret.push_str(&format!(
227 " {} {};\n",
228 typeref_name(&member.tref),
229 ident_name(&member.name)
230 ));
231 ret.push_str("\n");

Callers 1

print_datatypeFunction · 0.85

Calls 1

enumerateMethod · 0.80

Tested by

no test coverage detected