MCPcopy Create free account
hub / github.com/blocksecteam/rustle / findStruct

Function findStruct

utils/core.py:315–330  ·  view source on GitHub ↗

Search for struct(with #[near_bindgen]), return name and member list

(filename, only_near_bindgen=False)

Source from the content-addressed store, hash-verified

313
314
315def findStruct(filename, only_near_bindgen=False) -> list:
316 """Search for struct(with #[near_bindgen]), return name and member list"""
317 line_number = 0
318 results = []
319 with open(filename, "r") as file:
320 # print(re.sub('//.+\n', '', file.read()))
321 struct_pat = (r"(#\[near_bindgen\]\s*)" if only_near_bindgen else "") + r"(#\[[^\]]+\]\s*)*pub\s+struct\s+(?P<name>\w+)\s*(?P<trait><[^>]+>)?\s*\{(?P<members>[^\}]+)\}"
322 member_pat = r"(?P<name>\w+)\s*:\s*(?P<type>.+)\s*,"
323 st_matches = re.compile(struct_pat, re.MULTILINE | re.DOTALL)
324 for struct in st_matches.finditer(re.sub(r"/\*.+\*/", "", re.sub("//.+\n", "\n", file.read()))): # remove comment
325 members = []
326 for member in re.findall(member_pat, struct.groupdict()["members"]):
327 members.append({"name": member[0], "type": member[1]})
328 results.append({"name": struct.groupdict()["name"], "members": members, "file": filename})
329 # print(results)
330 return results
331
332
333def findCallbackFunc(filename) -> set:

Callers 1

findStruct.pyFile · 0.85

Calls 1

subMethod · 0.80

Tested by

no test coverage detected