Implement enum and conversion compatibility
This commit is contained in:
@@ -40,6 +40,8 @@ TARGETS = {
|
||||
NATIVE_TYPES = {
|
||||
"T:LibreMetaverse.Color4": "crate::color4::Color4",
|
||||
"T:LibreMetaverse.CRC32": "crate::crc32::CRC32",
|
||||
"T:LibreMetaverse.EnumInfoAttribute": "crate::enum_compat::EnumInfoAttribute",
|
||||
"T:LibreMetaverse.EnumInfoExtensions": "crate::enum_compat::EnumInfoExtensions",
|
||||
"T:LibreMetaverse.Matrix4": "crate::geometry::Matrix4",
|
||||
"T:LibreMetaverse.Quaternion": "crate::geometry::Quaternion",
|
||||
"T:LibreMetaverse.Ray": "crate::vectors::Ray",
|
||||
@@ -48,6 +50,7 @@ NATIVE_TYPES = {
|
||||
"T:LibreMetaverse.Vector3": "crate::vectors::Vector3",
|
||||
"T:LibreMetaverse.Vector3d": "crate::vectors::Vector3d",
|
||||
"T:LibreMetaverse.Vector4": "crate::vectors::Vector4",
|
||||
"T:LibreMetaverse.Utils": "crate::utils::Utils",
|
||||
}
|
||||
|
||||
NATIVE_MEMBER_BODIES = {
|
||||
@@ -453,6 +456,11 @@ def render_compile_fixture(
|
||||
row = member_rows[member["doc_id"]]
|
||||
method_names = generic_names(member)
|
||||
parameters = [*owner_names, *generic_declarations(member, mapper, owner_names)]
|
||||
if member["doc_id"] == "M:LibreMetaverse.Utils.EnumTryParse``1(System.String,``0@)":
|
||||
parameters = [
|
||||
*owner_names,
|
||||
"T: libremetaverse_types::EnumValueMetadata",
|
||||
]
|
||||
if trait:
|
||||
parameters.append(f"__Probe: {owner_type}")
|
||||
declaration = generic_suffix(parameters)
|
||||
@@ -838,7 +846,10 @@ def coverage_report(catalog: dict, coverage: dict[str, tuple[int, int, bool]]) -
|
||||
if complete and (types, members) != (got_types, got_members):
|
||||
raise ValueError(f"incomplete generated slice for {name}")
|
||||
native_type_ids = {
|
||||
item["doc_id"] for item in assembly["types"] if item["doc_id"] in NATIVE_TYPES
|
||||
item["doc_id"]
|
||||
for item in assembly["types"]
|
||||
if item["doc_id"] in NATIVE_TYPES
|
||||
or (name == "LibreMetaverse.Types" and item["kind"] == "enum")
|
||||
}
|
||||
native_member_ids = {
|
||||
member["doc_id"]
|
||||
|
||||
Reference in New Issue
Block a user