Translate Types and Utilities parity tests
Some checks failed
Rust API gates / api-gates (push) Has been cancelled

This commit is contained in:
2026-08-08 13:58:25 +02:00
parent 39ee61525a
commit 1c0dfdc35c
19 changed files with 3482 additions and 3318 deletions

View File

@@ -6,14 +6,14 @@ is a behavioral and API reference only: the finished project must not load,
host, bind to, invoke, or ship the .NET implementation. The current
stage is a compiling structural shell: crate boundaries mirror the .NET library
projects, public C# type names have Rust declarations, every upstream NUnit case
has a traceable placeholder, and every sample/tool project has a Rust binary
has a traceable Rust case, and every sample/tool project has a Rust binary
target. Types, StructuredData, Imaging, PrimMesher, both rendering adapters, and
the main assembly's packet/message/asset/primitive wire-data, core
runtime/networking, avatar-facing manager, world/social/service manager, RLV,
LSL tools, Utilities, Vivox, and WebRTC slices now have complete callable,
failure-only signatures. The independent downstream fixture compiles every
cataloged type and member with zero exclusions; semantic Rust test translations
are the next stage.
cataloged type and member with zero exclusions. Semantic Rust test translation
is underway, with the first 17 Types/Utilities cases reviewed.
The source snapshot, compatibility rules, dependency research, and ordered
implementation plan are in [RUSTREWRITE.md](RUSTREWRITE.md).

View File

@@ -27,18 +27,19 @@ Generated inventories are intentionally checked in:
types, plus two support traits referenced by public inheritance metadata.
- `api/RUST-MAPPING.tsv` records the reviewed Rust destination and complete
signature decision for all 30,789 public members.
- `tests/upstream-tests.json` records every NUnit invocation and the SHA-256 of
- `tests/upstream-tests.json` records every discovered NUnit case and the SHA-256 of
its C# method body.
- `tests/PARITY.md` maps every NUnit invocation to its Rust test name.
- `tests/PARITY.md` maps every discovered NUnit case to its Rust test name.
- `programs/upstream-programs.json` records every source file and digest for the
nine sample/tool projects.
Run `python3 tools/generate_surface.py` after deliberately changing the pinned
upstream snapshot, then run `python3 tools/extract_public_api.py` to rebuild the
authoritative metadata catalog twice and require byte-identical output. The
source generator rejects a test count other than 1,295 so upstream drift cannot
silently remove tests. Update both commit constants and review all ledger diffs
in the same change.
source generator rejects a test count other than 1,289 so upstream drift cannot
silently remove tests. The extractor masks C# comments and treats `[Test]` plus
`[TestCase]` on one parameterized method the same way as NUnit discovery. Update
both commit constants and review all ledger diffs in the same change.
### Current shell status
@@ -57,8 +58,9 @@ The current workspace is a structural baseline, not a working client:
slices expose all 3,066 final Rust-facing types and all 30,789 callable
members with real fields/constants/enum values and standardized failing
bodies;
- all 1,295 NUnit `[Test]`/`[TestCase]` invocations have compiling Rust test
entries that intentionally panic with their source identity and body hash;
- all 1,289 discovered NUnit `[Test]`/`[TestCase]` cases have compiling Rust test
entries; 17 Types/Utilities cases are semantically translated and the other
1,272 intentionally panic with their source identity and body hash;
- all nine sample/tool projects have compiling Rust binary targets;
- the 128 TestClient command source files are retained as a command inventory.
@@ -68,7 +70,7 @@ and the standalone downstream fixture names or invokes all 3,066 types and
aid, not proof of API coverage: it records declaration lines but does not fully
parse multiline signatures. Likewise, a generated `pending` test is a parity
placeholder, not a semantic translation. **The full public API signature shim
gate is complete; semantic test translation is the next stage.**
gate is complete; semantic test translation is underway.**
The avatar-facing slice preserves the C# agent, movement/camera, appearance and
outfit-policy, inventory/AIS/store, asset/cache, avatar, and animesh concepts.
@@ -316,7 +318,7 @@ The signature gate is complete only when:
### 3.2 Full semantic test-suite gate
After the full signature shim compiles, translate the entire C# test suite while
leaving all library bodies unimplemented. Every one of the 1,295 NUnit
leaving all library bodies unimplemented. Every one of the 1,289 discovered NUnit
invocations must become a Rust test with the same inputs, setup, operation,
observations, assertions, tolerances and expected error/event behavior. Shared
C# test helpers become shared Rust test helpers; embedded fixtures and literal
@@ -328,7 +330,8 @@ and semantic-review status. Reviewed tests are identified by `parity-case`
markers in hand-written Rust files, so regeneration writes only unresolved
placeholders and fails on body drift. The checked-in audit reports pending,
translated, ignored-live, benchmark, drifted, missing, duplicate, stale, and
unreviewed cases; the initial handover contains 1,295 unreviewed cases.
unreviewed cases. The initial handover contained 1,289 unreviewed cases; the
current ledger contains 17 translated/reviewed and 1,272 pending cases.
The Rust tests must call the public APIs rather than internal replacements.
Where the C# tests call internal members through friend-assembly access, record
@@ -782,7 +785,7 @@ not part of the default smoke test.
map 100% of public members to reviewed Rust signatures, and implement only
standardized failing bodies. All signatures and downstream compile fixtures
build before test translation begins.
3. **Full semantic test translation:** replace all 1,295 `pending` cases with
3. **Full semantic test translation:** replace all 1,289 `pending` cases with
exact reviewed Rust equivalents using the public shim. The entire suite
compiles and fails only at standardized unimplemented member boundaries.
4. **Types implementation:** UUID, math, enums, conversions, collections,

View File

@@ -39,8 +39,8 @@ External member APIs are not copied. Each signature type resolves to Rust core/s
| Decision | Types |
|---|---:|
| `language` | 25 |
| `native_cross_platform_replacement` | 64 |
| `stdlib_or_adopted_crate` | 53 |
| `native_cross_platform_replacement` | 62 |
| `stdlib_or_adopted_crate` | 55 |
## Schema decisions exercised

View File

@@ -1,204 +1,204 @@
csharp_id csharp_kind csharp_signature rust_crate rust_module rust_item_path rust_signature ownership asyncness error_model overload_decision mapping_kind status
E:LibreMetaverse.AgentManager.AgentDataReply event System.EventHandler<LibreMetaverse.AgentDataReplyEventArgs> LibreMetaverse.AgentManager.AgentDataReply libremetaverse libremetaverse::AgentManager::agent_data_reply pub fn subscribe_agent_data_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AgentDataReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AgentExperiencesUpdated event System.EventHandler<LibreMetaverse.AgentExperiencesEventArgs> LibreMetaverse.AgentManager.AgentExperiencesUpdated libremetaverse libremetaverse::AgentManager::agent_experiences_updated pub fn subscribe_agent_experiences_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AgentExperiencesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AgentPreferencesUpdated event System.EventHandler<LibreMetaverse.AgentPreferencesEventArgs> LibreMetaverse.AgentManager.AgentPreferencesUpdated libremetaverse libremetaverse::AgentManager::agent_preferences_updated pub fn subscribe_agent_preferences_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AgentPreferencesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AlertMessage event System.EventHandler<LibreMetaverse.AlertMessageEventArgs> LibreMetaverse.AgentManager.AlertMessage libremetaverse libremetaverse::AgentManager::alert_message pub fn subscribe_alert_message(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AlertMessageEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AnimationsChanged event System.EventHandler<LibreMetaverse.AnimationsChangedEventArgs> LibreMetaverse.AgentManager.AnimationsChanged libremetaverse libremetaverse::AgentManager::animations_changed pub fn subscribe_animations_changed(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AnimationsChangedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AvatarRenderInfoUpdated event System.EventHandler<LibreMetaverse.AvatarRenderInfoEventArgs> LibreMetaverse.AgentManager.AvatarRenderInfoUpdated libremetaverse libremetaverse::AgentManager::avatar_render_info_updated pub fn subscribe_avatar_render_info_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarRenderInfoEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AvatarSitResponse event System.EventHandler<LibreMetaverse.AvatarSitResponseEventArgs> LibreMetaverse.AgentManager.AvatarSitResponse libremetaverse libremetaverse::AgentManager::avatar_sit_response pub fn subscribe_avatar_sit_response(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarSitResponseEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.CameraConstraint event System.EventHandler<LibreMetaverse.CameraConstraintEventArgs> LibreMetaverse.AgentManager.CameraConstraint libremetaverse libremetaverse::AgentManager::camera_constraint pub fn subscribe_camera_constraint(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::CameraConstraintEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ChatFromSimulator event System.EventHandler<LibreMetaverse.ChatEventArgs> LibreMetaverse.AgentManager.ChatFromSimulator libremetaverse libremetaverse::AgentManager::chat_from_simulator pub fn subscribe_chat_from_simulator(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ChatEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ChatSessionMemberAdded event System.EventHandler<LibreMetaverse.ChatSessionMemberAddedEventArgs> LibreMetaverse.AgentManager.ChatSessionMemberAdded libremetaverse libremetaverse::AgentManager::chat_session_member_added pub fn subscribe_chat_session_member_added(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ChatSessionMemberAddedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ChatSessionMemberLeft event System.EventHandler<LibreMetaverse.ChatSessionMemberLeftEventArgs> LibreMetaverse.AgentManager.ChatSessionMemberLeft libremetaverse libremetaverse::AgentManager::chat_session_member_left pub fn subscribe_chat_session_member_left(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ChatSessionMemberLeftEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ExperienceInfoReceived event System.EventHandler<LibreMetaverse.ExperienceInfoEventArgs> LibreMetaverse.AgentManager.ExperienceInfoReceived libremetaverse libremetaverse::AgentManager::experience_info_received pub fn subscribe_experience_info_received(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ExperienceInfoEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ExperiencePreferencesUpdated event System.EventHandler<LibreMetaverse.ExperiencePreferencesEventArgs> LibreMetaverse.AgentManager.ExperiencePreferencesUpdated libremetaverse libremetaverse::AgentManager::experience_preferences_updated pub fn subscribe_experience_preferences_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ExperiencePreferencesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.GroupChatJoined event System.EventHandler<LibreMetaverse.GroupChatJoinedEventArgs> LibreMetaverse.AgentManager.GroupChatJoined libremetaverse libremetaverse::AgentManager::group_chat_joined pub fn subscribe_group_chat_joined(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupChatJoinedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.IM event System.EventHandler<LibreMetaverse.InstantMessageEventArgs> LibreMetaverse.AgentManager.IM libremetaverse libremetaverse::AgentManager::im pub fn subscribe_im(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::InstantMessageEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.LoadURL event System.EventHandler<LibreMetaverse.LoadUrlEventArgs> LibreMetaverse.AgentManager.LoadURL libremetaverse libremetaverse::AgentManager::load_url pub fn subscribe_load_url(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::LoadUrlEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.MeanCollision event System.EventHandler<LibreMetaverse.MeanCollisionEventArgs> LibreMetaverse.AgentManager.MeanCollision libremetaverse libremetaverse::AgentManager::mean_collision pub fn subscribe_mean_collision(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::MeanCollisionEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.MoneyBalance event System.EventHandler<LibreMetaverse.BalanceEventArgs> LibreMetaverse.AgentManager.MoneyBalance libremetaverse libremetaverse::AgentManager::money_balance pub fn subscribe_money_balance(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::BalanceEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.MoneyBalanceReply event System.EventHandler<LibreMetaverse.MoneyBalanceReplyEventArgs> LibreMetaverse.AgentManager.MoneyBalanceReply libremetaverse libremetaverse::AgentManager::money_balance_reply pub fn subscribe_money_balance_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::MoneyBalanceReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.MuteListUpdated event System.EventHandler<System.EventArgs> LibreMetaverse.AgentManager.MuteListUpdated libremetaverse libremetaverse::AgentManager::mute_list_updated pub fn subscribe_mute_list_updated(&self, handler: libremetaverse_types::compat::EventHandler<()>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.NavMeshStatusUpdate event System.EventHandler<LibreMetaverse.NavMeshStatusUpdateEventArgs> LibreMetaverse.AgentManager.NavMeshStatusUpdate libremetaverse libremetaverse::AgentManager::nav_mesh_status_update pub fn subscribe_nav_mesh_status_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::NavMeshStatusUpdateEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ProductInfoUpdated event System.EventHandler<LibreMetaverse.ProductInfoEventArgs> LibreMetaverse.AgentManager.ProductInfoUpdated libremetaverse libremetaverse::AgentManager::product_info_updated pub fn subscribe_product_info_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ProductInfoEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.RegionCrossed event System.EventHandler<LibreMetaverse.RegionCrossedEventArgs> LibreMetaverse.AgentManager.RegionCrossed libremetaverse libremetaverse::AgentManager::region_crossed pub fn subscribe_region_crossed(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::RegionCrossedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.RegionCrossingPredicted event System.EventHandler<LibreMetaverse.RegionCrossingPredictionEventArgs> LibreMetaverse.AgentManager.RegionCrossingPredicted libremetaverse libremetaverse::AgentManager::region_crossing_predicted pub fn subscribe_region_crossing_predicted(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::RegionCrossingPredictionEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.RegionExperiencesUpdated event System.EventHandler<LibreMetaverse.RegionExperiencesEventArgs> LibreMetaverse.AgentManager.RegionExperiencesUpdated libremetaverse libremetaverse::AgentManager::region_experiences_updated pub fn subscribe_region_experiences_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::RegionExperiencesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ScriptControlChange event System.EventHandler<LibreMetaverse.ScriptControlEventArgs> LibreMetaverse.AgentManager.ScriptControlChange libremetaverse libremetaverse::AgentManager::script_control_change pub fn subscribe_script_control_change(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ScriptControlEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ScriptDialog event System.EventHandler<LibreMetaverse.ScriptDialogEventArgs> LibreMetaverse.AgentManager.ScriptDialog libremetaverse libremetaverse::AgentManager::script_dialog pub fn subscribe_script_dialog(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ScriptDialogEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ScriptQuestion event System.EventHandler<LibreMetaverse.ScriptQuestionEventArgs> LibreMetaverse.AgentManager.ScriptQuestion libremetaverse libremetaverse::AgentManager::script_question pub fn subscribe_script_question(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ScriptQuestionEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ScriptSensorReply event System.EventHandler<LibreMetaverse.ScriptSensorReplyEventArgs> LibreMetaverse.AgentManager.ScriptSensorReply libremetaverse libremetaverse::AgentManager::script_sensor_reply pub fn subscribe_script_sensor_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ScriptSensorReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.SetDisplayNameReply event System.EventHandler<LibreMetaverse.SetDisplayNameReplyEventArgs> LibreMetaverse.AgentManager.SetDisplayNameReply libremetaverse libremetaverse::AgentManager::set_display_name_reply pub fn subscribe_set_display_name_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::SetDisplayNameReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.TeleportProgress event System.EventHandler<LibreMetaverse.TeleportEventArgs> LibreMetaverse.AgentManager.TeleportProgress libremetaverse libremetaverse::AgentManager::teleport_progress pub fn subscribe_teleport_progress(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::TeleportEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ViewerBenefitsUpdated event System.EventHandler<LibreMetaverse.ViewerBenefitsEventArgs> LibreMetaverse.AgentManager.ViewerBenefitsUpdated libremetaverse libremetaverse::AgentManager::viewer_benefits_updated pub fn subscribe_viewer_benefits_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ViewerBenefitsEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AppearanceManager.AgentWearablesReply event System.EventHandler<LibreMetaverse.AgentWearablesReplyEventArgs> LibreMetaverse.AppearanceManager.AgentWearablesReply libremetaverse libremetaverse::AppearanceManager::agent_wearables_reply pub fn subscribe_agent_wearables_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AgentWearablesReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AppearanceManager.AppearanceSet event System.EventHandler<LibreMetaverse.AppearanceSetEventArgs> LibreMetaverse.AppearanceManager.AppearanceSet libremetaverse libremetaverse::AppearanceManager::appearance_set pub fn subscribe_appearance_set(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AppearanceSetEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AppearanceManager.CachedBakesReply event System.EventHandler<LibreMetaverse.AgentCachedBakesReplyEventArgs> LibreMetaverse.AppearanceManager.CachedBakesReply libremetaverse libremetaverse::AppearanceManager::cached_bakes_reply pub fn subscribe_cached_bakes_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AgentCachedBakesReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AppearanceManager.RebakeAvatarRequested event System.EventHandler<LibreMetaverse.RebakeAvatarTexturesEventArgs> LibreMetaverse.AppearanceManager.RebakeAvatarRequested libremetaverse libremetaverse::AppearanceManager::rebake_avatar_requested pub fn subscribe_rebake_avatar_requested(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::RebakeAvatarTexturesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.AssetUploaded event System.EventHandler<LibreMetaverse.AssetUploadEventArgs> LibreMetaverse.AssetManager.AssetUploaded libremetaverse libremetaverse::AssetManager::asset_uploaded pub fn subscribe_asset_uploaded(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AssetUploadEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.ImageReceiveProgress event System.EventHandler<LibreMetaverse.ImageReceiveProgressEventArgs> LibreMetaverse.AssetManager.ImageReceiveProgress libremetaverse libremetaverse::AssetManager::image_receive_progress pub fn subscribe_image_receive_progress(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ImageReceiveProgressEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.InitiateDownload event System.EventHandler<LibreMetaverse.InitiateDownloadEventArgs> LibreMetaverse.AssetManager.InitiateDownload libremetaverse libremetaverse::AssetManager::initiate_download pub fn subscribe_initiate_download(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::InitiateDownloadEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.UploadProgress event System.EventHandler<LibreMetaverse.AssetUploadEventArgs> LibreMetaverse.AssetManager.UploadProgress libremetaverse libremetaverse::AssetManager::upload_progress pub fn subscribe_upload_progress(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AssetUploadEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.XferReceived event System.EventHandler<LibreMetaverse.XferReceivedEventArgs> LibreMetaverse.AssetManager.XferReceived libremetaverse libremetaverse::AssetManager::xfer_received pub fn subscribe_xfer_received(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::XferReceivedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AgentDataReply event System.EventHandler<LibreMetaverse.AgentDataReplyEventArgs> LibreMetaverse.AgentManager.AgentDataReply libremetaverse libremetaverse::AgentManager::agent_data_reply pub fn subscribe_agent_data_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AgentDataReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AgentExperiencesUpdated event System.EventHandler<LibreMetaverse.AgentExperiencesEventArgs> LibreMetaverse.AgentManager.AgentExperiencesUpdated libremetaverse libremetaverse::AgentManager::agent_experiences_updated pub fn subscribe_agent_experiences_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AgentExperiencesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AgentPreferencesUpdated event System.EventHandler<LibreMetaverse.AgentPreferencesEventArgs> LibreMetaverse.AgentManager.AgentPreferencesUpdated libremetaverse libremetaverse::AgentManager::agent_preferences_updated pub fn subscribe_agent_preferences_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AgentPreferencesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AlertMessage event System.EventHandler<LibreMetaverse.AlertMessageEventArgs> LibreMetaverse.AgentManager.AlertMessage libremetaverse libremetaverse::AgentManager::alert_message pub fn subscribe_alert_message(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AlertMessageEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AnimationsChanged event System.EventHandler<LibreMetaverse.AnimationsChangedEventArgs> LibreMetaverse.AgentManager.AnimationsChanged libremetaverse libremetaverse::AgentManager::animations_changed pub fn subscribe_animations_changed(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AnimationsChangedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AvatarRenderInfoUpdated event System.EventHandler<LibreMetaverse.AvatarRenderInfoEventArgs> LibreMetaverse.AgentManager.AvatarRenderInfoUpdated libremetaverse libremetaverse::AgentManager::avatar_render_info_updated pub fn subscribe_avatar_render_info_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarRenderInfoEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.AvatarSitResponse event System.EventHandler<LibreMetaverse.AvatarSitResponseEventArgs> LibreMetaverse.AgentManager.AvatarSitResponse libremetaverse libremetaverse::AgentManager::avatar_sit_response pub fn subscribe_avatar_sit_response(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarSitResponseEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.CameraConstraint event System.EventHandler<LibreMetaverse.CameraConstraintEventArgs> LibreMetaverse.AgentManager.CameraConstraint libremetaverse libremetaverse::AgentManager::camera_constraint pub fn subscribe_camera_constraint(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::CameraConstraintEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ChatFromSimulator event System.EventHandler<LibreMetaverse.ChatEventArgs> LibreMetaverse.AgentManager.ChatFromSimulator libremetaverse libremetaverse::AgentManager::chat_from_simulator pub fn subscribe_chat_from_simulator(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ChatEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ChatSessionMemberAdded event System.EventHandler<LibreMetaverse.ChatSessionMemberAddedEventArgs> LibreMetaverse.AgentManager.ChatSessionMemberAdded libremetaverse libremetaverse::AgentManager::chat_session_member_added pub fn subscribe_chat_session_member_added(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ChatSessionMemberAddedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ChatSessionMemberLeft event System.EventHandler<LibreMetaverse.ChatSessionMemberLeftEventArgs> LibreMetaverse.AgentManager.ChatSessionMemberLeft libremetaverse libremetaverse::AgentManager::chat_session_member_left pub fn subscribe_chat_session_member_left(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ChatSessionMemberLeftEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ExperienceInfoReceived event System.EventHandler<LibreMetaverse.ExperienceInfoEventArgs> LibreMetaverse.AgentManager.ExperienceInfoReceived libremetaverse libremetaverse::AgentManager::experience_info_received pub fn subscribe_experience_info_received(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ExperienceInfoEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ExperiencePreferencesUpdated event System.EventHandler<LibreMetaverse.ExperiencePreferencesEventArgs> LibreMetaverse.AgentManager.ExperiencePreferencesUpdated libremetaverse libremetaverse::AgentManager::experience_preferences_updated pub fn subscribe_experience_preferences_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ExperiencePreferencesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.GroupChatJoined event System.EventHandler<LibreMetaverse.GroupChatJoinedEventArgs> LibreMetaverse.AgentManager.GroupChatJoined libremetaverse libremetaverse::AgentManager::group_chat_joined pub fn subscribe_group_chat_joined(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupChatJoinedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.IM event System.EventHandler<LibreMetaverse.InstantMessageEventArgs> LibreMetaverse.AgentManager.IM libremetaverse libremetaverse::AgentManager::im pub fn subscribe_im(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::InstantMessageEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.LoadURL event System.EventHandler<LibreMetaverse.LoadUrlEventArgs> LibreMetaverse.AgentManager.LoadURL libremetaverse libremetaverse::AgentManager::load_url pub fn subscribe_load_url(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::LoadUrlEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.MeanCollision event System.EventHandler<LibreMetaverse.MeanCollisionEventArgs> LibreMetaverse.AgentManager.MeanCollision libremetaverse libremetaverse::AgentManager::mean_collision pub fn subscribe_mean_collision(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::MeanCollisionEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.MoneyBalance event System.EventHandler<LibreMetaverse.BalanceEventArgs> LibreMetaverse.AgentManager.MoneyBalance libremetaverse libremetaverse::AgentManager::money_balance pub fn subscribe_money_balance(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::BalanceEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.MoneyBalanceReply event System.EventHandler<LibreMetaverse.MoneyBalanceReplyEventArgs> LibreMetaverse.AgentManager.MoneyBalanceReply libremetaverse libremetaverse::AgentManager::money_balance_reply pub fn subscribe_money_balance_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::MoneyBalanceReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.MuteListUpdated event System.EventHandler<System.EventArgs> LibreMetaverse.AgentManager.MuteListUpdated libremetaverse libremetaverse::AgentManager::mute_list_updated pub fn subscribe_mute_list_updated(&self, handler: std::sync::Arc<dyn Fn(()) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.NavMeshStatusUpdate event System.EventHandler<LibreMetaverse.NavMeshStatusUpdateEventArgs> LibreMetaverse.AgentManager.NavMeshStatusUpdate libremetaverse libremetaverse::AgentManager::nav_mesh_status_update pub fn subscribe_nav_mesh_status_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::NavMeshStatusUpdateEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ProductInfoUpdated event System.EventHandler<LibreMetaverse.ProductInfoEventArgs> LibreMetaverse.AgentManager.ProductInfoUpdated libremetaverse libremetaverse::AgentManager::product_info_updated pub fn subscribe_product_info_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ProductInfoEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.RegionCrossed event System.EventHandler<LibreMetaverse.RegionCrossedEventArgs> LibreMetaverse.AgentManager.RegionCrossed libremetaverse libremetaverse::AgentManager::region_crossed pub fn subscribe_region_crossed(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::RegionCrossedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.RegionCrossingPredicted event System.EventHandler<LibreMetaverse.RegionCrossingPredictionEventArgs> LibreMetaverse.AgentManager.RegionCrossingPredicted libremetaverse libremetaverse::AgentManager::region_crossing_predicted pub fn subscribe_region_crossing_predicted(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::RegionCrossingPredictionEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.RegionExperiencesUpdated event System.EventHandler<LibreMetaverse.RegionExperiencesEventArgs> LibreMetaverse.AgentManager.RegionExperiencesUpdated libremetaverse libremetaverse::AgentManager::region_experiences_updated pub fn subscribe_region_experiences_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::RegionExperiencesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ScriptControlChange event System.EventHandler<LibreMetaverse.ScriptControlEventArgs> LibreMetaverse.AgentManager.ScriptControlChange libremetaverse libremetaverse::AgentManager::script_control_change pub fn subscribe_script_control_change(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ScriptControlEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ScriptDialog event System.EventHandler<LibreMetaverse.ScriptDialogEventArgs> LibreMetaverse.AgentManager.ScriptDialog libremetaverse libremetaverse::AgentManager::script_dialog pub fn subscribe_script_dialog(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ScriptDialogEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ScriptQuestion event System.EventHandler<LibreMetaverse.ScriptQuestionEventArgs> LibreMetaverse.AgentManager.ScriptQuestion libremetaverse libremetaverse::AgentManager::script_question pub fn subscribe_script_question(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ScriptQuestionEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ScriptSensorReply event System.EventHandler<LibreMetaverse.ScriptSensorReplyEventArgs> LibreMetaverse.AgentManager.ScriptSensorReply libremetaverse libremetaverse::AgentManager::script_sensor_reply pub fn subscribe_script_sensor_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ScriptSensorReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.SetDisplayNameReply event System.EventHandler<LibreMetaverse.SetDisplayNameReplyEventArgs> LibreMetaverse.AgentManager.SetDisplayNameReply libremetaverse libremetaverse::AgentManager::set_display_name_reply pub fn subscribe_set_display_name_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::SetDisplayNameReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.TeleportProgress event System.EventHandler<LibreMetaverse.TeleportEventArgs> LibreMetaverse.AgentManager.TeleportProgress libremetaverse libremetaverse::AgentManager::teleport_progress pub fn subscribe_teleport_progress(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::TeleportEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AgentManager.ViewerBenefitsUpdated event System.EventHandler<LibreMetaverse.ViewerBenefitsEventArgs> LibreMetaverse.AgentManager.ViewerBenefitsUpdated libremetaverse libremetaverse::AgentManager::viewer_benefits_updated pub fn subscribe_viewer_benefits_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ViewerBenefitsEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AppearanceManager.AgentWearablesReply event System.EventHandler<LibreMetaverse.AgentWearablesReplyEventArgs> LibreMetaverse.AppearanceManager.AgentWearablesReply libremetaverse libremetaverse::AppearanceManager::agent_wearables_reply pub fn subscribe_agent_wearables_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AgentWearablesReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AppearanceManager.AppearanceSet event System.EventHandler<LibreMetaverse.AppearanceSetEventArgs> LibreMetaverse.AppearanceManager.AppearanceSet libremetaverse libremetaverse::AppearanceManager::appearance_set pub fn subscribe_appearance_set(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AppearanceSetEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AppearanceManager.CachedBakesReply event System.EventHandler<LibreMetaverse.AgentCachedBakesReplyEventArgs> LibreMetaverse.AppearanceManager.CachedBakesReply libremetaverse libremetaverse::AppearanceManager::cached_bakes_reply pub fn subscribe_cached_bakes_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AgentCachedBakesReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AppearanceManager.RebakeAvatarRequested event System.EventHandler<LibreMetaverse.RebakeAvatarTexturesEventArgs> LibreMetaverse.AppearanceManager.RebakeAvatarRequested libremetaverse libremetaverse::AppearanceManager::rebake_avatar_requested pub fn subscribe_rebake_avatar_requested(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::RebakeAvatarTexturesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.AssetUploaded event System.EventHandler<LibreMetaverse.AssetUploadEventArgs> LibreMetaverse.AssetManager.AssetUploaded libremetaverse libremetaverse::AssetManager::asset_uploaded pub fn subscribe_asset_uploaded(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AssetUploadEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.ImageReceiveProgress event System.EventHandler<LibreMetaverse.ImageReceiveProgressEventArgs> LibreMetaverse.AssetManager.ImageReceiveProgress libremetaverse libremetaverse::AssetManager::image_receive_progress pub fn subscribe_image_receive_progress(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ImageReceiveProgressEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.InitiateDownload event System.EventHandler<LibreMetaverse.InitiateDownloadEventArgs> LibreMetaverse.AssetManager.InitiateDownload libremetaverse libremetaverse::AssetManager::initiate_download pub fn subscribe_initiate_download(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::InitiateDownloadEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.UploadProgress event System.EventHandler<LibreMetaverse.AssetUploadEventArgs> LibreMetaverse.AssetManager.UploadProgress libremetaverse libremetaverse::AssetManager::upload_progress pub fn subscribe_upload_progress(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AssetUploadEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AssetManager.XferReceived event System.EventHandler<LibreMetaverse.XferReceivedEventArgs> LibreMetaverse.AssetManager.XferReceived libremetaverse libremetaverse::AssetManager::xfer_received pub fn subscribe_xfer_received(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::XferReceivedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AudioDevice.OnAudioSourceEncodedSample event System.Action<System.UInt32, System.Byte[]> LibreMetaverse.AudioDevice.OnAudioSourceEncodedSample libremetaverse-voice-webrtc libre_metaverse libremetaverse_voice_webrtc::libre_metaverse::AudioDevice::on_audio_source_encoded_sample pub fn subscribe_on_audio_source_encoded_sample(&self, handler: Option<Box<dyn Fn(u32, Vec<u8>) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AudioDevice.OnPlaybackActiveChanged event System.Action<System.Boolean> LibreMetaverse.AudioDevice.OnPlaybackActiveChanged libremetaverse-voice-webrtc libre_metaverse libremetaverse_voice_webrtc::libre_metaverse::AudioDevice::on_playback_active_changed pub fn subscribe_on_playback_active_changed(&self, handler: Option<Box<dyn Fn(bool) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AudioDevice.OnRecordingActiveChanged event System.Action<System.Boolean> LibreMetaverse.AudioDevice.OnRecordingActiveChanged libremetaverse-voice-webrtc libre_metaverse libremetaverse_voice_webrtc::libre_metaverse::AudioDevice::on_recording_active_changed pub fn subscribe_on_recording_active_changed(&self, handler: Option<Box<dyn Fn(bool) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarAnimation event System.EventHandler<LibreMetaverse.AvatarAnimationEventArgs> LibreMetaverse.AvatarManager.AvatarAnimation libremetaverse libremetaverse::AvatarManager::avatar_animation pub fn subscribe_avatar_animation(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarAnimationEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarAppearance event System.EventHandler<LibreMetaverse.AvatarAppearanceEventArgs> LibreMetaverse.AvatarManager.AvatarAppearance libremetaverse libremetaverse::AvatarManager::avatar_appearance pub fn subscribe_avatar_appearance(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarAppearanceEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarClassifiedReply event System.EventHandler<LibreMetaverse.AvatarClassifiedReplyEventArgs> LibreMetaverse.AvatarManager.AvatarClassifiedReply libremetaverse libremetaverse::AvatarManager::avatar_classified_reply pub fn subscribe_avatar_classified_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarClassifiedReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarGroupsReply event System.EventHandler<LibreMetaverse.AvatarGroupsReplyEventArgs> LibreMetaverse.AvatarManager.AvatarGroupsReply libremetaverse libremetaverse::AvatarManager::avatar_groups_reply pub fn subscribe_avatar_groups_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarGroupsReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarInterestsReply event System.EventHandler<LibreMetaverse.AvatarInterestsReplyEventArgs> LibreMetaverse.AvatarManager.AvatarInterestsReply libremetaverse libremetaverse::AvatarManager::avatar_interests_reply pub fn subscribe_avatar_interests_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarInterestsReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarNotesReply event System.EventHandler<LibreMetaverse.AvatarNotesReplyEventArgs> LibreMetaverse.AvatarManager.AvatarNotesReply libremetaverse libremetaverse::AvatarManager::avatar_notes_reply pub fn subscribe_avatar_notes_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarNotesReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarPickerReply event System.EventHandler<LibreMetaverse.AvatarPickerReplyEventArgs> LibreMetaverse.AvatarManager.AvatarPickerReply libremetaverse libremetaverse::AvatarManager::avatar_picker_reply pub fn subscribe_avatar_picker_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarPickerReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarPicksReply event System.EventHandler<LibreMetaverse.AvatarPicksReplyEventArgs> LibreMetaverse.AvatarManager.AvatarPicksReply libremetaverse libremetaverse::AvatarManager::avatar_picks_reply pub fn subscribe_avatar_picks_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarPicksReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarPropertiesReply event System.EventHandler<LibreMetaverse.AvatarPropertiesReplyEventArgs> LibreMetaverse.AvatarManager.AvatarPropertiesReply libremetaverse libremetaverse::AvatarManager::avatar_properties_reply pub fn subscribe_avatar_properties_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarPropertiesReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.ClassifiedInfoReply event System.EventHandler<LibreMetaverse.ClassifiedInfoReplyEventArgs> LibreMetaverse.AvatarManager.ClassifiedInfoReply libremetaverse libremetaverse::AvatarManager::classified_info_reply pub fn subscribe_classified_info_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ClassifiedInfoReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.DisplayNameUpdate event System.EventHandler<LibreMetaverse.DisplayNameUpdateEventArgs> LibreMetaverse.AvatarManager.DisplayNameUpdate libremetaverse libremetaverse::AvatarManager::display_name_update pub fn subscribe_display_name_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::DisplayNameUpdateEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.PickInfoReply event System.EventHandler<LibreMetaverse.PickInfoReplyEventArgs> LibreMetaverse.AvatarManager.PickInfoReply libremetaverse libremetaverse::AvatarManager::pick_info_reply pub fn subscribe_pick_info_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::PickInfoReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.UUIDNameReply event System.EventHandler<LibreMetaverse.UUIDNameReplyEventArgs> LibreMetaverse.AvatarManager.UUIDNameReply libremetaverse libremetaverse::AvatarManager::uuid_name_reply pub fn subscribe_uuid_name_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::UUIDNameReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.ViewerEffect event System.EventHandler<LibreMetaverse.ViewerEffectEventArgs> LibreMetaverse.AvatarManager.ViewerEffect libremetaverse libremetaverse::AvatarManager::viewer_effect pub fn subscribe_viewer_effect(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ViewerEffectEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.ViewerEffectLookAt event System.EventHandler<LibreMetaverse.ViewerEffectLookAtEventArgs> LibreMetaverse.AvatarManager.ViewerEffectLookAt libremetaverse libremetaverse::AvatarManager::viewer_effect_look_at pub fn subscribe_viewer_effect_look_at(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ViewerEffectLookAtEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.ViewerEffectPointAt event System.EventHandler<LibreMetaverse.ViewerEffectPointAtEventArgs> LibreMetaverse.AvatarManager.ViewerEffectPointAt libremetaverse libremetaverse::AvatarManager::viewer_effect_point_at pub fn subscribe_viewer_effect_point_at(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ViewerEffectPointAtEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Caps.CapabilitiesReceived event System.EventHandler<LibreMetaverse.CapabilitiesReceivedEventArgs> LibreMetaverse.Caps.CapabilitiesReceived libremetaverse libremetaverse::Caps::capabilities_received pub fn subscribe_capabilities_received(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse::CapabilitiesReceivedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirClassifiedsReply event System.EventHandler<LibreMetaverse.DirClassifiedsReplyEventArgs> LibreMetaverse.DirectoryManager.DirClassifiedsReply libremetaverse libremetaverse::DirectoryManager::dir_classifieds_reply pub fn subscribe_dir_classifieds_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::DirClassifiedsReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirEventsReply event System.EventHandler<LibreMetaverse.DirEventsReplyEventArgs> LibreMetaverse.DirectoryManager.DirEventsReply libremetaverse libremetaverse::DirectoryManager::dir_events_reply pub fn subscribe_dir_events_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::DirEventsReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirGroupsReply event System.EventHandler<LibreMetaverse.DirGroupsReplyEventArgs> LibreMetaverse.DirectoryManager.DirGroupsReply libremetaverse libremetaverse::DirectoryManager::dir_groups_reply pub fn subscribe_dir_groups_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::DirGroupsReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirLandReply event System.EventHandler<LibreMetaverse.DirLandReplyEventArgs> LibreMetaverse.DirectoryManager.DirLandReply libremetaverse libremetaverse::DirectoryManager::dir_land_reply pub fn subscribe_dir_land_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::DirLandReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirPeopleReply event System.EventHandler<LibreMetaverse.DirPeopleReplyEventArgs> LibreMetaverse.DirectoryManager.DirPeopleReply libremetaverse libremetaverse::DirectoryManager::dir_people_reply pub fn subscribe_dir_people_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::DirPeopleReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirPlacesReply event System.EventHandler<LibreMetaverse.DirPlacesReplyEventArgs> LibreMetaverse.DirectoryManager.DirPlacesReply libremetaverse libremetaverse::DirectoryManager::dir_places_reply pub fn subscribe_dir_places_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::DirPlacesReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.EventInfoReply event System.EventHandler<LibreMetaverse.EventInfoReplyEventArgs> LibreMetaverse.DirectoryManager.EventInfoReply libremetaverse libremetaverse::DirectoryManager::event_info_reply pub fn subscribe_event_info_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EventInfoReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.PlacesReply event System.EventHandler<LibreMetaverse.PlacesReplyEventArgs> LibreMetaverse.DirectoryManager.PlacesReply libremetaverse libremetaverse::DirectoryManager::places_reply pub fn subscribe_places_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::PlacesReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EnvironmentManager.LegacyEnvironmentUpdated event System.EventHandler<LibreMetaverse.LegacyEnvironmentEventArgs> LibreMetaverse.EnvironmentManager.LegacyEnvironmentUpdated libremetaverse libremetaverse::EnvironmentManager::legacy_environment_updated pub fn subscribe_legacy_environment_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::LegacyEnvironmentEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EnvironmentManager.ParcelEnvironmentUpdated event System.EventHandler<LibreMetaverse.ParcelEnvironmentEventArgs> LibreMetaverse.EnvironmentManager.ParcelEnvironmentUpdated libremetaverse libremetaverse::EnvironmentManager::parcel_environment_updated pub fn subscribe_parcel_environment_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelEnvironmentEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EnvironmentManager.RegionEnvironmentUpdated event System.EventHandler<LibreMetaverse.RegionEnvironmentEventArgs> LibreMetaverse.EnvironmentManager.RegionEnvironmentUpdated libremetaverse libremetaverse::EnvironmentManager::region_environment_updated pub fn subscribe_region_environment_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::RegionEnvironmentEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateBansReply event System.EventHandler<LibreMetaverse.EstateBansReplyEventArgs> LibreMetaverse.EstateTools.EstateBansReply libremetaverse libremetaverse::EstateTools::estate_bans_reply pub fn subscribe_estate_bans_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EstateBansReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateCovenantReply event System.EventHandler<LibreMetaverse.EstateCovenantReplyEventArgs> LibreMetaverse.EstateTools.EstateCovenantReply libremetaverse libremetaverse::EstateTools::estate_covenant_reply pub fn subscribe_estate_covenant_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EstateCovenantReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateExperienceReply event System.EventHandler<LibreMetaverse.EstateExperienceReplyEventArgs> LibreMetaverse.EstateTools.EstateExperienceReply libremetaverse libremetaverse::EstateTools::estate_experience_reply pub fn subscribe_estate_experience_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EstateExperienceReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateGroupsReply event System.EventHandler<LibreMetaverse.EstateGroupsReplyEventArgs> LibreMetaverse.EstateTools.EstateGroupsReply libremetaverse libremetaverse::EstateTools::estate_groups_reply pub fn subscribe_estate_groups_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EstateGroupsReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateManagersReply event System.EventHandler<LibreMetaverse.EstateManagersReplyEventArgs> LibreMetaverse.EstateTools.EstateManagersReply libremetaverse libremetaverse::EstateTools::estate_managers_reply pub fn subscribe_estate_managers_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EstateManagersReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateUpdateInfoReply event System.EventHandler<LibreMetaverse.EstateUpdateInfoReplyEventArgs> LibreMetaverse.EstateTools.EstateUpdateInfoReply libremetaverse libremetaverse::EstateTools::estate_update_info_reply pub fn subscribe_estate_update_info_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EstateUpdateInfoReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateUsersReply event System.EventHandler<LibreMetaverse.EstateUsersReplyEventArgs> LibreMetaverse.EstateTools.EstateUsersReply libremetaverse libremetaverse::EstateTools::estate_users_reply pub fn subscribe_estate_users_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EstateUsersReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.TopCollidersReply event System.EventHandler<LibreMetaverse.TopCollidersReplyEventArgs> LibreMetaverse.EstateTools.TopCollidersReply libremetaverse libremetaverse::EstateTools::top_colliders_reply pub fn subscribe_top_colliders_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::TopCollidersReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.TopScriptsReply event System.EventHandler<LibreMetaverse.TopScriptsReplyEventArgs> LibreMetaverse.EstateTools.TopScriptsReply libremetaverse libremetaverse::EstateTools::top_scripts_reply pub fn subscribe_top_scripts_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::TopScriptsReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.CallingCardOffered event System.EventHandler<LibreMetaverse.CallingCardOfferedEventArgs> LibreMetaverse.FriendsManager.CallingCardOffered libremetaverse libremetaverse::FriendsManager::calling_card_offered pub fn subscribe_calling_card_offered(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::CallingCardOfferedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendFoundReply event System.EventHandler<LibreMetaverse.FriendFoundReplyEventArgs> LibreMetaverse.FriendsManager.FriendFoundReply libremetaverse libremetaverse::FriendsManager::friend_found_reply pub fn subscribe_friend_found_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendFoundReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendNames event System.EventHandler<LibreMetaverse.FriendNamesEventArgs> LibreMetaverse.FriendsManager.FriendNames libremetaverse libremetaverse::FriendsManager::friend_names pub fn subscribe_friend_names(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendNamesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendOffline event System.EventHandler<LibreMetaverse.FriendInfoEventArgs> LibreMetaverse.FriendsManager.FriendOffline libremetaverse libremetaverse::FriendsManager::friend_offline pub fn subscribe_friend_offline(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendInfoEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendOnline event System.EventHandler<LibreMetaverse.FriendInfoEventArgs> LibreMetaverse.FriendsManager.FriendOnline libremetaverse libremetaverse::FriendsManager::friend_online pub fn subscribe_friend_online(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendInfoEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendRightsUpdate event System.EventHandler<LibreMetaverse.FriendInfoEventArgs> LibreMetaverse.FriendsManager.FriendRightsUpdate libremetaverse libremetaverse::FriendsManager::friend_rights_update pub fn subscribe_friend_rights_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendInfoEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendshipOffered event System.EventHandler<LibreMetaverse.FriendshipOfferedEventArgs> LibreMetaverse.FriendsManager.FriendshipOffered libremetaverse libremetaverse::FriendsManager::friendship_offered pub fn subscribe_friendship_offered(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendshipOfferedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendshipResponse event System.EventHandler<LibreMetaverse.FriendshipResponseEventArgs> LibreMetaverse.FriendsManager.FriendshipResponse libremetaverse libremetaverse::FriendsManager::friendship_response pub fn subscribe_friendship_response(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendshipResponseEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendshipTerminated event System.EventHandler<LibreMetaverse.FriendshipTerminatedEventArgs> LibreMetaverse.FriendsManager.FriendshipTerminated libremetaverse libremetaverse::FriendsManager::friendship_terminated pub fn subscribe_friendship_terminated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendshipTerminatedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.friendsListReady event System.EventHandler<LibreMetaverse.FriendsReadyEventArgs> LibreMetaverse.FriendsManager.friendsListReady libremetaverse libremetaverse::FriendsManager::friends_list_ready pub fn subscribe_friends_list_ready(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FriendsReadyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.CoarseLocationUpdate event System.EventHandler<LibreMetaverse.CoarseLocationUpdateEventArgs> LibreMetaverse.GridManager.CoarseLocationUpdate libremetaverse libremetaverse::GridManager::coarse_location_update pub fn subscribe_coarse_location_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::CoarseLocationUpdateEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.GridItems event System.EventHandler<LibreMetaverse.GridItemsEventArgs> LibreMetaverse.GridManager.GridItems libremetaverse libremetaverse::GridManager::grid_items pub fn subscribe_grid_items(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GridItemsEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.GridLayer event System.EventHandler<LibreMetaverse.GridLayerEventArgs> LibreMetaverse.GridManager.GridLayer libremetaverse libremetaverse::GridManager::grid_layer pub fn subscribe_grid_layer(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GridLayerEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.GridRegion event System.EventHandler<LibreMetaverse.GridRegionEventArgs> LibreMetaverse.GridManager.GridRegion libremetaverse libremetaverse::GridManager::grid_region pub fn subscribe_grid_region(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GridRegionEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.RegionHandleReply event System.EventHandler<LibreMetaverse.RegionHandleReplyEventArgs> LibreMetaverse.GridManager.RegionHandleReply libremetaverse libremetaverse::GridManager::region_handle_reply pub fn subscribe_region_handle_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::RegionHandleReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.BannedAgents event System.EventHandler<LibreMetaverse.BannedAgentsEventArgs> LibreMetaverse.GroupManager.BannedAgents libremetaverse libremetaverse::GroupManager::banned_agents pub fn subscribe_banned_agents(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::BannedAgentsEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.CurrentGroups event System.EventHandler<LibreMetaverse.CurrentGroupsEventArgs> LibreMetaverse.GroupManager.CurrentGroups libremetaverse libremetaverse::GroupManager::current_groups pub fn subscribe_current_groups(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::CurrentGroupsEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupAccountSummaryReply event System.EventHandler<LibreMetaverse.GroupAccountSummaryReplyEventArgs> LibreMetaverse.GroupManager.GroupAccountSummaryReply libremetaverse libremetaverse::GroupManager::group_account_summary_reply pub fn subscribe_group_account_summary_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupAccountSummaryReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupCreatedReply event System.EventHandler<LibreMetaverse.GroupCreatedReplyEventArgs> LibreMetaverse.GroupManager.GroupCreatedReply libremetaverse libremetaverse::GroupManager::group_created_reply pub fn subscribe_group_created_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupCreatedReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupDropped event System.EventHandler<LibreMetaverse.GroupDroppedEventArgs> LibreMetaverse.GroupManager.GroupDropped libremetaverse libremetaverse::GroupManager::group_dropped pub fn subscribe_group_dropped(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupDroppedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupInvitation event System.EventHandler<LibreMetaverse.GroupInvitationEventArgs> LibreMetaverse.GroupManager.GroupInvitation libremetaverse libremetaverse::GroupManager::group_invitation pub fn subscribe_group_invitation(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupInvitationEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupJoinedReply event System.EventHandler<LibreMetaverse.GroupOperationEventArgs> LibreMetaverse.GroupManager.GroupJoinedReply libremetaverse libremetaverse::GroupManager::group_joined_reply pub fn subscribe_group_joined_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupOperationEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupLeaveReply event System.EventHandler<LibreMetaverse.GroupOperationEventArgs> LibreMetaverse.GroupManager.GroupLeaveReply libremetaverse libremetaverse::GroupManager::group_leave_reply pub fn subscribe_group_leave_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupOperationEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupMemberEjected event System.EventHandler<LibreMetaverse.GroupOperationEventArgs> LibreMetaverse.GroupManager.GroupMemberEjected libremetaverse libremetaverse::GroupManager::group_member_ejected pub fn subscribe_group_member_ejected(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupOperationEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupMembersReply event System.EventHandler<LibreMetaverse.GroupMembersReplyEventArgs> LibreMetaverse.GroupManager.GroupMembersReply libremetaverse libremetaverse::GroupManager::group_members_reply pub fn subscribe_group_members_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupMembersReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupNamesReply event System.EventHandler<LibreMetaverse.GroupNamesEventArgs> LibreMetaverse.GroupManager.GroupNamesReply libremetaverse libremetaverse::GroupManager::group_names_reply pub fn subscribe_group_names_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupNamesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupNoticesListReply event System.EventHandler<LibreMetaverse.GroupNoticesListReplyEventArgs> LibreMetaverse.GroupManager.GroupNoticesListReply libremetaverse libremetaverse::GroupManager::group_notices_list_reply pub fn subscribe_group_notices_list_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupNoticesListReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupProfile event System.EventHandler<LibreMetaverse.GroupProfileEventArgs> LibreMetaverse.GroupManager.GroupProfile libremetaverse libremetaverse::GroupManager::group_profile pub fn subscribe_group_profile(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupProfileEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupRoleDataReply event System.EventHandler<LibreMetaverse.GroupRolesDataReplyEventArgs> LibreMetaverse.GroupManager.GroupRoleDataReply libremetaverse libremetaverse::GroupManager::group_role_data_reply pub fn subscribe_group_role_data_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupRolesDataReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupRoleMembersReply event System.EventHandler<LibreMetaverse.GroupRolesMembersReplyEventArgs> LibreMetaverse.GroupManager.GroupRoleMembersReply libremetaverse libremetaverse::GroupManager::group_role_members_reply pub fn subscribe_group_role_members_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupRolesMembersReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupTitlesReply event System.EventHandler<LibreMetaverse.GroupTitlesReplyEventArgs> LibreMetaverse.GroupManager.GroupTitlesReply libremetaverse libremetaverse::GroupManager::group_titles_reply pub fn subscribe_group_titles_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GroupTitlesReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Inventory.InventoryObjectAdded event System.EventHandler<LibreMetaverse.InventoryObjectAddedEventArgs> LibreMetaverse.Inventory.InventoryObjectAdded libremetaverse libremetaverse::Inventory::inventory_object_added pub fn subscribe_inventory_object_added(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::InventoryObjectAddedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Inventory.InventoryObjectRemoved event System.EventHandler<LibreMetaverse.InventoryObjectRemovedEventArgs> LibreMetaverse.Inventory.InventoryObjectRemoved libremetaverse libremetaverse::Inventory::inventory_object_removed pub fn subscribe_inventory_object_removed(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::InventoryObjectRemovedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Inventory.InventoryObjectUpdated event System.EventHandler<LibreMetaverse.InventoryObjectUpdatedEventArgs> LibreMetaverse.Inventory.InventoryObjectUpdated libremetaverse libremetaverse::Inventory::inventory_object_updated pub fn subscribe_inventory_object_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::InventoryObjectUpdatedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.FindObjectByPathReply event System.EventHandler<LibreMetaverse.FindObjectByPathReplyEventArgs> LibreMetaverse.InventoryManager.FindObjectByPathReply libremetaverse libremetaverse::InventoryManager::find_object_by_path_reply pub fn subscribe_find_object_by_path_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FindObjectByPathReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.FolderUpdated event System.EventHandler<LibreMetaverse.FolderUpdatedEventArgs> LibreMetaverse.InventoryManager.FolderUpdated libremetaverse libremetaverse::InventoryManager::folder_updated pub fn subscribe_folder_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::FolderUpdatedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.InventoryObjectOffered event System.EventHandler<LibreMetaverse.InventoryObjectOfferedEventArgs> LibreMetaverse.InventoryManager.InventoryObjectOffered libremetaverse libremetaverse::InventoryManager::inventory_object_offered pub fn subscribe_inventory_object_offered(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::InventoryObjectOfferedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.ItemReceived event System.EventHandler<LibreMetaverse.ItemReceivedEventArgs> LibreMetaverse.InventoryManager.ItemReceived libremetaverse libremetaverse::InventoryManager::item_received pub fn subscribe_item_received(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ItemReceivedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.SaveAssetToInventory event System.EventHandler<LibreMetaverse.SaveAssetToInventoryEventArgs> LibreMetaverse.InventoryManager.SaveAssetToInventory libremetaverse libremetaverse::InventoryManager::save_asset_to_inventory pub fn subscribe_save_asset_to_inventory(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::SaveAssetToInventoryEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.ScriptRunningReply event System.EventHandler<LibreMetaverse.ScriptRunningReplyEventArgs> LibreMetaverse.InventoryManager.ScriptRunningReply libremetaverse libremetaverse::InventoryManager::script_running_reply pub fn subscribe_script_running_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ScriptRunningReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.TaskInventoryReply event System.EventHandler<LibreMetaverse.TaskInventoryReplyEventArgs> LibreMetaverse.InventoryManager.TaskInventoryReply libremetaverse libremetaverse::InventoryManager::task_inventory_reply pub fn subscribe_task_inventory_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::TaskInventoryReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.TaskItemReceived event System.EventHandler<LibreMetaverse.TaskItemReceivedEventArgs> LibreMetaverse.InventoryManager.TaskItemReceived libremetaverse libremetaverse::InventoryManager::task_item_received pub fn subscribe_task_item_received(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::TaskItemReceivedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarAnimation event System.EventHandler<LibreMetaverse.AvatarAnimationEventArgs> LibreMetaverse.AvatarManager.AvatarAnimation libremetaverse libremetaverse::AvatarManager::avatar_animation pub fn subscribe_avatar_animation(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarAnimationEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarAppearance event System.EventHandler<LibreMetaverse.AvatarAppearanceEventArgs> LibreMetaverse.AvatarManager.AvatarAppearance libremetaverse libremetaverse::AvatarManager::avatar_appearance pub fn subscribe_avatar_appearance(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarAppearanceEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarClassifiedReply event System.EventHandler<LibreMetaverse.AvatarClassifiedReplyEventArgs> LibreMetaverse.AvatarManager.AvatarClassifiedReply libremetaverse libremetaverse::AvatarManager::avatar_classified_reply pub fn subscribe_avatar_classified_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarClassifiedReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarGroupsReply event System.EventHandler<LibreMetaverse.AvatarGroupsReplyEventArgs> LibreMetaverse.AvatarManager.AvatarGroupsReply libremetaverse libremetaverse::AvatarManager::avatar_groups_reply pub fn subscribe_avatar_groups_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarGroupsReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarInterestsReply event System.EventHandler<LibreMetaverse.AvatarInterestsReplyEventArgs> LibreMetaverse.AvatarManager.AvatarInterestsReply libremetaverse libremetaverse::AvatarManager::avatar_interests_reply pub fn subscribe_avatar_interests_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarInterestsReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarNotesReply event System.EventHandler<LibreMetaverse.AvatarNotesReplyEventArgs> LibreMetaverse.AvatarManager.AvatarNotesReply libremetaverse libremetaverse::AvatarManager::avatar_notes_reply pub fn subscribe_avatar_notes_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarNotesReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarPickerReply event System.EventHandler<LibreMetaverse.AvatarPickerReplyEventArgs> LibreMetaverse.AvatarManager.AvatarPickerReply libremetaverse libremetaverse::AvatarManager::avatar_picker_reply pub fn subscribe_avatar_picker_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarPickerReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarPicksReply event System.EventHandler<LibreMetaverse.AvatarPicksReplyEventArgs> LibreMetaverse.AvatarManager.AvatarPicksReply libremetaverse libremetaverse::AvatarManager::avatar_picks_reply pub fn subscribe_avatar_picks_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarPicksReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.AvatarPropertiesReply event System.EventHandler<LibreMetaverse.AvatarPropertiesReplyEventArgs> LibreMetaverse.AvatarManager.AvatarPropertiesReply libremetaverse libremetaverse::AvatarManager::avatar_properties_reply pub fn subscribe_avatar_properties_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarPropertiesReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.ClassifiedInfoReply event System.EventHandler<LibreMetaverse.ClassifiedInfoReplyEventArgs> LibreMetaverse.AvatarManager.ClassifiedInfoReply libremetaverse libremetaverse::AvatarManager::classified_info_reply pub fn subscribe_classified_info_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ClassifiedInfoReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.DisplayNameUpdate event System.EventHandler<LibreMetaverse.DisplayNameUpdateEventArgs> LibreMetaverse.AvatarManager.DisplayNameUpdate libremetaverse libremetaverse::AvatarManager::display_name_update pub fn subscribe_display_name_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::DisplayNameUpdateEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.PickInfoReply event System.EventHandler<LibreMetaverse.PickInfoReplyEventArgs> LibreMetaverse.AvatarManager.PickInfoReply libremetaverse libremetaverse::AvatarManager::pick_info_reply pub fn subscribe_pick_info_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::PickInfoReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.UUIDNameReply event System.EventHandler<LibreMetaverse.UUIDNameReplyEventArgs> LibreMetaverse.AvatarManager.UUIDNameReply libremetaverse libremetaverse::AvatarManager::uuid_name_reply pub fn subscribe_uuid_name_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::UUIDNameReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.ViewerEffect event System.EventHandler<LibreMetaverse.ViewerEffectEventArgs> LibreMetaverse.AvatarManager.ViewerEffect libremetaverse libremetaverse::AvatarManager::viewer_effect pub fn subscribe_viewer_effect(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ViewerEffectEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.ViewerEffectLookAt event System.EventHandler<LibreMetaverse.ViewerEffectLookAtEventArgs> LibreMetaverse.AvatarManager.ViewerEffectLookAt libremetaverse libremetaverse::AvatarManager::viewer_effect_look_at pub fn subscribe_viewer_effect_look_at(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ViewerEffectLookAtEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.AvatarManager.ViewerEffectPointAt event System.EventHandler<LibreMetaverse.ViewerEffectPointAtEventArgs> LibreMetaverse.AvatarManager.ViewerEffectPointAt libremetaverse libremetaverse::AvatarManager::viewer_effect_point_at pub fn subscribe_viewer_effect_point_at(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ViewerEffectPointAtEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Caps.CapabilitiesReceived event System.EventHandler<LibreMetaverse.CapabilitiesReceivedEventArgs> LibreMetaverse.Caps.CapabilitiesReceived libremetaverse libremetaverse::Caps::capabilities_received pub fn subscribe_capabilities_received(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse::CapabilitiesReceivedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirClassifiedsReply event System.EventHandler<LibreMetaverse.DirClassifiedsReplyEventArgs> LibreMetaverse.DirectoryManager.DirClassifiedsReply libremetaverse libremetaverse::DirectoryManager::dir_classifieds_reply pub fn subscribe_dir_classifieds_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::DirClassifiedsReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirEventsReply event System.EventHandler<LibreMetaverse.DirEventsReplyEventArgs> LibreMetaverse.DirectoryManager.DirEventsReply libremetaverse libremetaverse::DirectoryManager::dir_events_reply pub fn subscribe_dir_events_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::DirEventsReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirGroupsReply event System.EventHandler<LibreMetaverse.DirGroupsReplyEventArgs> LibreMetaverse.DirectoryManager.DirGroupsReply libremetaverse libremetaverse::DirectoryManager::dir_groups_reply pub fn subscribe_dir_groups_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::DirGroupsReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirLandReply event System.EventHandler<LibreMetaverse.DirLandReplyEventArgs> LibreMetaverse.DirectoryManager.DirLandReply libremetaverse libremetaverse::DirectoryManager::dir_land_reply pub fn subscribe_dir_land_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::DirLandReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirPeopleReply event System.EventHandler<LibreMetaverse.DirPeopleReplyEventArgs> LibreMetaverse.DirectoryManager.DirPeopleReply libremetaverse libremetaverse::DirectoryManager::dir_people_reply pub fn subscribe_dir_people_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::DirPeopleReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.DirPlacesReply event System.EventHandler<LibreMetaverse.DirPlacesReplyEventArgs> LibreMetaverse.DirectoryManager.DirPlacesReply libremetaverse libremetaverse::DirectoryManager::dir_places_reply pub fn subscribe_dir_places_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::DirPlacesReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.EventInfoReply event System.EventHandler<LibreMetaverse.EventInfoReplyEventArgs> LibreMetaverse.DirectoryManager.EventInfoReply libremetaverse libremetaverse::DirectoryManager::event_info_reply pub fn subscribe_event_info_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EventInfoReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.DirectoryManager.PlacesReply event System.EventHandler<LibreMetaverse.PlacesReplyEventArgs> LibreMetaverse.DirectoryManager.PlacesReply libremetaverse libremetaverse::DirectoryManager::places_reply pub fn subscribe_places_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::PlacesReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EnvironmentManager.LegacyEnvironmentUpdated event System.EventHandler<LibreMetaverse.LegacyEnvironmentEventArgs> LibreMetaverse.EnvironmentManager.LegacyEnvironmentUpdated libremetaverse libremetaverse::EnvironmentManager::legacy_environment_updated pub fn subscribe_legacy_environment_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::LegacyEnvironmentEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EnvironmentManager.ParcelEnvironmentUpdated event System.EventHandler<LibreMetaverse.ParcelEnvironmentEventArgs> LibreMetaverse.EnvironmentManager.ParcelEnvironmentUpdated libremetaverse libremetaverse::EnvironmentManager::parcel_environment_updated pub fn subscribe_parcel_environment_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelEnvironmentEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EnvironmentManager.RegionEnvironmentUpdated event System.EventHandler<LibreMetaverse.RegionEnvironmentEventArgs> LibreMetaverse.EnvironmentManager.RegionEnvironmentUpdated libremetaverse libremetaverse::EnvironmentManager::region_environment_updated pub fn subscribe_region_environment_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::RegionEnvironmentEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateBansReply event System.EventHandler<LibreMetaverse.EstateBansReplyEventArgs> LibreMetaverse.EstateTools.EstateBansReply libremetaverse libremetaverse::EstateTools::estate_bans_reply pub fn subscribe_estate_bans_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EstateBansReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateCovenantReply event System.EventHandler<LibreMetaverse.EstateCovenantReplyEventArgs> LibreMetaverse.EstateTools.EstateCovenantReply libremetaverse libremetaverse::EstateTools::estate_covenant_reply pub fn subscribe_estate_covenant_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EstateCovenantReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateExperienceReply event System.EventHandler<LibreMetaverse.EstateExperienceReplyEventArgs> LibreMetaverse.EstateTools.EstateExperienceReply libremetaverse libremetaverse::EstateTools::estate_experience_reply pub fn subscribe_estate_experience_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EstateExperienceReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateGroupsReply event System.EventHandler<LibreMetaverse.EstateGroupsReplyEventArgs> LibreMetaverse.EstateTools.EstateGroupsReply libremetaverse libremetaverse::EstateTools::estate_groups_reply pub fn subscribe_estate_groups_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EstateGroupsReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateManagersReply event System.EventHandler<LibreMetaverse.EstateManagersReplyEventArgs> LibreMetaverse.EstateTools.EstateManagersReply libremetaverse libremetaverse::EstateTools::estate_managers_reply pub fn subscribe_estate_managers_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EstateManagersReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateUpdateInfoReply event System.EventHandler<LibreMetaverse.EstateUpdateInfoReplyEventArgs> LibreMetaverse.EstateTools.EstateUpdateInfoReply libremetaverse libremetaverse::EstateTools::estate_update_info_reply pub fn subscribe_estate_update_info_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EstateUpdateInfoReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.EstateUsersReply event System.EventHandler<LibreMetaverse.EstateUsersReplyEventArgs> LibreMetaverse.EstateTools.EstateUsersReply libremetaverse libremetaverse::EstateTools::estate_users_reply pub fn subscribe_estate_users_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EstateUsersReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.TopCollidersReply event System.EventHandler<LibreMetaverse.TopCollidersReplyEventArgs> LibreMetaverse.EstateTools.TopCollidersReply libremetaverse libremetaverse::EstateTools::top_colliders_reply pub fn subscribe_top_colliders_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::TopCollidersReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.EstateTools.TopScriptsReply event System.EventHandler<LibreMetaverse.TopScriptsReplyEventArgs> LibreMetaverse.EstateTools.TopScriptsReply libremetaverse libremetaverse::EstateTools::top_scripts_reply pub fn subscribe_top_scripts_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::TopScriptsReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.CallingCardOffered event System.EventHandler<LibreMetaverse.CallingCardOfferedEventArgs> LibreMetaverse.FriendsManager.CallingCardOffered libremetaverse libremetaverse::FriendsManager::calling_card_offered pub fn subscribe_calling_card_offered(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::CallingCardOfferedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendFoundReply event System.EventHandler<LibreMetaverse.FriendFoundReplyEventArgs> LibreMetaverse.FriendsManager.FriendFoundReply libremetaverse libremetaverse::FriendsManager::friend_found_reply pub fn subscribe_friend_found_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendFoundReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendNames event System.EventHandler<LibreMetaverse.FriendNamesEventArgs> LibreMetaverse.FriendsManager.FriendNames libremetaverse libremetaverse::FriendsManager::friend_names pub fn subscribe_friend_names(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendNamesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendOffline event System.EventHandler<LibreMetaverse.FriendInfoEventArgs> LibreMetaverse.FriendsManager.FriendOffline libremetaverse libremetaverse::FriendsManager::friend_offline pub fn subscribe_friend_offline(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendInfoEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendOnline event System.EventHandler<LibreMetaverse.FriendInfoEventArgs> LibreMetaverse.FriendsManager.FriendOnline libremetaverse libremetaverse::FriendsManager::friend_online pub fn subscribe_friend_online(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendInfoEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendRightsUpdate event System.EventHandler<LibreMetaverse.FriendInfoEventArgs> LibreMetaverse.FriendsManager.FriendRightsUpdate libremetaverse libremetaverse::FriendsManager::friend_rights_update pub fn subscribe_friend_rights_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendInfoEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendshipOffered event System.EventHandler<LibreMetaverse.FriendshipOfferedEventArgs> LibreMetaverse.FriendsManager.FriendshipOffered libremetaverse libremetaverse::FriendsManager::friendship_offered pub fn subscribe_friendship_offered(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendshipOfferedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendshipResponse event System.EventHandler<LibreMetaverse.FriendshipResponseEventArgs> LibreMetaverse.FriendsManager.FriendshipResponse libremetaverse libremetaverse::FriendsManager::friendship_response pub fn subscribe_friendship_response(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendshipResponseEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.FriendshipTerminated event System.EventHandler<LibreMetaverse.FriendshipTerminatedEventArgs> LibreMetaverse.FriendsManager.FriendshipTerminated libremetaverse libremetaverse::FriendsManager::friendship_terminated pub fn subscribe_friendship_terminated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendshipTerminatedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.FriendsManager.friendsListReady event System.EventHandler<LibreMetaverse.FriendsReadyEventArgs> LibreMetaverse.FriendsManager.friendsListReady libremetaverse libremetaverse::FriendsManager::friends_list_ready pub fn subscribe_friends_list_ready(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FriendsReadyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.CoarseLocationUpdate event System.EventHandler<LibreMetaverse.CoarseLocationUpdateEventArgs> LibreMetaverse.GridManager.CoarseLocationUpdate libremetaverse libremetaverse::GridManager::coarse_location_update pub fn subscribe_coarse_location_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::CoarseLocationUpdateEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.GridItems event System.EventHandler<LibreMetaverse.GridItemsEventArgs> LibreMetaverse.GridManager.GridItems libremetaverse libremetaverse::GridManager::grid_items pub fn subscribe_grid_items(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GridItemsEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.GridLayer event System.EventHandler<LibreMetaverse.GridLayerEventArgs> LibreMetaverse.GridManager.GridLayer libremetaverse libremetaverse::GridManager::grid_layer pub fn subscribe_grid_layer(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GridLayerEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.GridRegion event System.EventHandler<LibreMetaverse.GridRegionEventArgs> LibreMetaverse.GridManager.GridRegion libremetaverse libremetaverse::GridManager::grid_region pub fn subscribe_grid_region(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GridRegionEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GridManager.RegionHandleReply event System.EventHandler<LibreMetaverse.RegionHandleReplyEventArgs> LibreMetaverse.GridManager.RegionHandleReply libremetaverse libremetaverse::GridManager::region_handle_reply pub fn subscribe_region_handle_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::RegionHandleReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.BannedAgents event System.EventHandler<LibreMetaverse.BannedAgentsEventArgs> LibreMetaverse.GroupManager.BannedAgents libremetaverse libremetaverse::GroupManager::banned_agents pub fn subscribe_banned_agents(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::BannedAgentsEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.CurrentGroups event System.EventHandler<LibreMetaverse.CurrentGroupsEventArgs> LibreMetaverse.GroupManager.CurrentGroups libremetaverse libremetaverse::GroupManager::current_groups pub fn subscribe_current_groups(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::CurrentGroupsEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupAccountSummaryReply event System.EventHandler<LibreMetaverse.GroupAccountSummaryReplyEventArgs> LibreMetaverse.GroupManager.GroupAccountSummaryReply libremetaverse libremetaverse::GroupManager::group_account_summary_reply pub fn subscribe_group_account_summary_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupAccountSummaryReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupCreatedReply event System.EventHandler<LibreMetaverse.GroupCreatedReplyEventArgs> LibreMetaverse.GroupManager.GroupCreatedReply libremetaverse libremetaverse::GroupManager::group_created_reply pub fn subscribe_group_created_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupCreatedReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupDropped event System.EventHandler<LibreMetaverse.GroupDroppedEventArgs> LibreMetaverse.GroupManager.GroupDropped libremetaverse libremetaverse::GroupManager::group_dropped pub fn subscribe_group_dropped(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupDroppedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupInvitation event System.EventHandler<LibreMetaverse.GroupInvitationEventArgs> LibreMetaverse.GroupManager.GroupInvitation libremetaverse libremetaverse::GroupManager::group_invitation pub fn subscribe_group_invitation(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupInvitationEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupJoinedReply event System.EventHandler<LibreMetaverse.GroupOperationEventArgs> LibreMetaverse.GroupManager.GroupJoinedReply libremetaverse libremetaverse::GroupManager::group_joined_reply pub fn subscribe_group_joined_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupOperationEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupLeaveReply event System.EventHandler<LibreMetaverse.GroupOperationEventArgs> LibreMetaverse.GroupManager.GroupLeaveReply libremetaverse libremetaverse::GroupManager::group_leave_reply pub fn subscribe_group_leave_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupOperationEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupMemberEjected event System.EventHandler<LibreMetaverse.GroupOperationEventArgs> LibreMetaverse.GroupManager.GroupMemberEjected libremetaverse libremetaverse::GroupManager::group_member_ejected pub fn subscribe_group_member_ejected(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupOperationEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupMembersReply event System.EventHandler<LibreMetaverse.GroupMembersReplyEventArgs> LibreMetaverse.GroupManager.GroupMembersReply libremetaverse libremetaverse::GroupManager::group_members_reply pub fn subscribe_group_members_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupMembersReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupNamesReply event System.EventHandler<LibreMetaverse.GroupNamesEventArgs> LibreMetaverse.GroupManager.GroupNamesReply libremetaverse libremetaverse::GroupManager::group_names_reply pub fn subscribe_group_names_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupNamesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupNoticesListReply event System.EventHandler<LibreMetaverse.GroupNoticesListReplyEventArgs> LibreMetaverse.GroupManager.GroupNoticesListReply libremetaverse libremetaverse::GroupManager::group_notices_list_reply pub fn subscribe_group_notices_list_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupNoticesListReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupProfile event System.EventHandler<LibreMetaverse.GroupProfileEventArgs> LibreMetaverse.GroupManager.GroupProfile libremetaverse libremetaverse::GroupManager::group_profile pub fn subscribe_group_profile(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupProfileEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupRoleDataReply event System.EventHandler<LibreMetaverse.GroupRolesDataReplyEventArgs> LibreMetaverse.GroupManager.GroupRoleDataReply libremetaverse libremetaverse::GroupManager::group_role_data_reply pub fn subscribe_group_role_data_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupRolesDataReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupRoleMembersReply event System.EventHandler<LibreMetaverse.GroupRolesMembersReplyEventArgs> LibreMetaverse.GroupManager.GroupRoleMembersReply libremetaverse libremetaverse::GroupManager::group_role_members_reply pub fn subscribe_group_role_members_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupRolesMembersReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.GroupManager.GroupTitlesReply event System.EventHandler<LibreMetaverse.GroupTitlesReplyEventArgs> LibreMetaverse.GroupManager.GroupTitlesReply libremetaverse libremetaverse::GroupManager::group_titles_reply pub fn subscribe_group_titles_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GroupTitlesReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Inventory.InventoryObjectAdded event System.EventHandler<LibreMetaverse.InventoryObjectAddedEventArgs> LibreMetaverse.Inventory.InventoryObjectAdded libremetaverse libremetaverse::Inventory::inventory_object_added pub fn subscribe_inventory_object_added(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::InventoryObjectAddedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Inventory.InventoryObjectRemoved event System.EventHandler<LibreMetaverse.InventoryObjectRemovedEventArgs> LibreMetaverse.Inventory.InventoryObjectRemoved libremetaverse libremetaverse::Inventory::inventory_object_removed pub fn subscribe_inventory_object_removed(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::InventoryObjectRemovedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Inventory.InventoryObjectUpdated event System.EventHandler<LibreMetaverse.InventoryObjectUpdatedEventArgs> LibreMetaverse.Inventory.InventoryObjectUpdated libremetaverse libremetaverse::Inventory::inventory_object_updated pub fn subscribe_inventory_object_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::InventoryObjectUpdatedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.FindObjectByPathReply event System.EventHandler<LibreMetaverse.FindObjectByPathReplyEventArgs> LibreMetaverse.InventoryManager.FindObjectByPathReply libremetaverse libremetaverse::InventoryManager::find_object_by_path_reply pub fn subscribe_find_object_by_path_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FindObjectByPathReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.FolderUpdated event System.EventHandler<LibreMetaverse.FolderUpdatedEventArgs> LibreMetaverse.InventoryManager.FolderUpdated libremetaverse libremetaverse::InventoryManager::folder_updated pub fn subscribe_folder_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::FolderUpdatedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.InventoryObjectOffered event System.EventHandler<LibreMetaverse.InventoryObjectOfferedEventArgs> LibreMetaverse.InventoryManager.InventoryObjectOffered libremetaverse libremetaverse::InventoryManager::inventory_object_offered pub fn subscribe_inventory_object_offered(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::InventoryObjectOfferedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.ItemReceived event System.EventHandler<LibreMetaverse.ItemReceivedEventArgs> LibreMetaverse.InventoryManager.ItemReceived libremetaverse libremetaverse::InventoryManager::item_received pub fn subscribe_item_received(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ItemReceivedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.SaveAssetToInventory event System.EventHandler<LibreMetaverse.SaveAssetToInventoryEventArgs> LibreMetaverse.InventoryManager.SaveAssetToInventory libremetaverse libremetaverse::InventoryManager::save_asset_to_inventory pub fn subscribe_save_asset_to_inventory(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::SaveAssetToInventoryEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.ScriptRunningReply event System.EventHandler<LibreMetaverse.ScriptRunningReplyEventArgs> LibreMetaverse.InventoryManager.ScriptRunningReply libremetaverse libremetaverse::InventoryManager::script_running_reply pub fn subscribe_script_running_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ScriptRunningReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.TaskInventoryReply event System.EventHandler<LibreMetaverse.TaskInventoryReplyEventArgs> LibreMetaverse.InventoryManager.TaskInventoryReply libremetaverse libremetaverse::InventoryManager::task_inventory_reply pub fn subscribe_task_inventory_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::TaskInventoryReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.InventoryManager.TaskItemReceived event System.EventHandler<LibreMetaverse.TaskItemReceivedEventArgs> LibreMetaverse.InventoryManager.TaskItemReceived libremetaverse libremetaverse::InventoryManager::task_item_received pub fn subscribe_task_item_received(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::TaskItemReceivedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Logger.OnLogMessage event LibreMetaverse.Logger.LogCallback LibreMetaverse.Logger.OnLogMessage libremetaverse libremetaverse::Logger::on_log_message pub fn subscribe_on_log_message(handler: Option<libremetaverse::LoggerLogCallback>) -> libremetaverse_types::compat::Subscription stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.LslSyntax.SyntaxChanged event System.EventHandler LibreMetaverse.LslSyntax.SyntaxChanged libremetaverse libremetaverse::LslSyntax::syntax_changed pub fn subscribe_syntax_changed(&self, handler: libremetaverse_types::compat::EventHandler<()>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Marketplace.MarketplaceManager.Error event System.EventHandler<LibreMetaverse.Marketplace.MarketplaceErrorEventArgs> LibreMetaverse.Marketplace.MarketplaceManager.Error libremetaverse marketplace libremetaverse::marketplace::MarketplaceManager::error pub fn subscribe_error(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::marketplace::MarketplaceErrorEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Marketplace.MarketplaceManager.ListingChanged event System.EventHandler<LibreMetaverse.Marketplace.MarketplaceListingChangedEventArgs> LibreMetaverse.Marketplace.MarketplaceManager.ListingChanged libremetaverse marketplace libremetaverse::marketplace::MarketplaceManager::listing_changed pub fn subscribe_listing_changed(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::marketplace::MarketplaceListingChangedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Marketplace.MarketplaceManager.ListingsSynced event System.EventHandler<LibreMetaverse.Marketplace.MarketplaceListingsSyncedEventArgs> LibreMetaverse.Marketplace.MarketplaceManager.ListingsSynced libremetaverse marketplace libremetaverse::marketplace::MarketplaceManager::listings_synced pub fn subscribe_listings_synced(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::marketplace::MarketplaceListingsSyncedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.Disconnected event System.EventHandler<LibreMetaverse.DisconnectedEventArgs> LibreMetaverse.NetworkManager.Disconnected libremetaverse libremetaverse::NetworkManager::disconnected pub fn subscribe_disconnected(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::DisconnectedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.EventQueueRunning event System.EventHandler<LibreMetaverse.EventQueueRunningEventArgs> LibreMetaverse.NetworkManager.EventQueueRunning libremetaverse libremetaverse::NetworkManager::event_queue_running pub fn subscribe_event_queue_running(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::EventQueueRunningEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.GenericStreamingMessage event System.EventHandler<LibreMetaverse.GenericStreamingMessageEventArgs> LibreMetaverse.NetworkManager.GenericStreamingMessage libremetaverse libremetaverse::NetworkManager::generic_streaming_message pub fn subscribe_generic_streaming_message(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::GenericStreamingMessageEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.LoggedOut event System.EventHandler<LibreMetaverse.LoggedOutEventArgs> LibreMetaverse.NetworkManager.LoggedOut libremetaverse libremetaverse::NetworkManager::logged_out pub fn subscribe_logged_out(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::LoggedOutEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.LoginProgress event System.EventHandler<LibreMetaverse.LoginProgressEventArgs> LibreMetaverse.NetworkManager.LoginProgress libremetaverse libremetaverse::NetworkManager::login_progress pub fn subscribe_login_progress(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::LoginProgressEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.PacketSent event System.EventHandler<LibreMetaverse.PacketSentEventArgs> LibreMetaverse.NetworkManager.PacketSent libremetaverse libremetaverse::NetworkManager::packet_sent pub fn subscribe_packet_sent(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::PacketSentEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.SimChanged event System.EventHandler<LibreMetaverse.SimChangedEventArgs> LibreMetaverse.NetworkManager.SimChanged libremetaverse libremetaverse::NetworkManager::sim_changed pub fn subscribe_sim_changed(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::SimChangedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.SimConnected event System.EventHandler<LibreMetaverse.SimConnectedEventArgs> LibreMetaverse.NetworkManager.SimConnected libremetaverse libremetaverse::NetworkManager::sim_connected pub fn subscribe_sim_connected(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::SimConnectedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.SimConnecting event System.EventHandler<LibreMetaverse.SimConnectingEventArgs> LibreMetaverse.NetworkManager.SimConnecting libremetaverse libremetaverse::NetworkManager::sim_connecting pub fn subscribe_sim_connecting(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::SimConnectingEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.SimDisconnected event System.EventHandler<LibreMetaverse.SimDisconnectedEventArgs> LibreMetaverse.NetworkManager.SimDisconnected libremetaverse libremetaverse::NetworkManager::sim_disconnected pub fn subscribe_sim_disconnected(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::SimDisconnectedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.AvatarSitChanged event System.EventHandler<LibreMetaverse.AvatarSitChangedEventArgs> LibreMetaverse.ObjectManager.AvatarSitChanged libremetaverse libremetaverse::ObjectManager::avatar_sit_changed pub fn subscribe_avatar_sit_changed(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarSitChangedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.AvatarUpdate event System.EventHandler<LibreMetaverse.AvatarUpdateEventArgs> LibreMetaverse.ObjectManager.AvatarUpdate libremetaverse libremetaverse::ObjectManager::avatar_update pub fn subscribe_avatar_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AvatarUpdateEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.KillObject event System.EventHandler<LibreMetaverse.KillObjectEventArgs> LibreMetaverse.ObjectManager.KillObject libremetaverse libremetaverse::ObjectManager::kill_object pub fn subscribe_kill_object(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::KillObjectEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.KillObjects event System.EventHandler<LibreMetaverse.KillObjectsEventArgs> LibreMetaverse.ObjectManager.KillObjects libremetaverse libremetaverse::ObjectManager::kill_objects pub fn subscribe_kill_objects(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::KillObjectsEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectAnimation event System.EventHandler<LibreMetaverse.ObjectAnimationEventArgs> LibreMetaverse.ObjectManager.ObjectAnimation libremetaverse libremetaverse::ObjectManager::object_animation pub fn subscribe_object_animation(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ObjectAnimationEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectDataBlockUpdate event System.EventHandler<LibreMetaverse.ObjectDataBlockUpdateEventArgs> LibreMetaverse.ObjectManager.ObjectDataBlockUpdate libremetaverse libremetaverse::ObjectManager::object_data_block_update pub fn subscribe_object_data_block_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ObjectDataBlockUpdateEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectProperties event System.EventHandler<LibreMetaverse.ObjectPropertiesEventArgs> LibreMetaverse.ObjectManager.ObjectProperties libremetaverse libremetaverse::ObjectManager::object_properties pub fn subscribe_object_properties(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ObjectPropertiesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectPropertiesFamily event System.EventHandler<LibreMetaverse.ObjectPropertiesFamilyEventArgs> LibreMetaverse.ObjectManager.ObjectPropertiesFamily libremetaverse libremetaverse::ObjectManager::object_properties_family pub fn subscribe_object_properties_family(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ObjectPropertiesFamilyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectPropertiesUpdated event System.EventHandler<LibreMetaverse.ObjectPropertiesUpdatedEventArgs> LibreMetaverse.ObjectManager.ObjectPropertiesUpdated libremetaverse libremetaverse::ObjectManager::object_properties_updated pub fn subscribe_object_properties_updated(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ObjectPropertiesUpdatedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectUpdate event System.EventHandler<LibreMetaverse.PrimEventArgs> LibreMetaverse.ObjectManager.ObjectUpdate libremetaverse libremetaverse::ObjectManager::object_update pub fn subscribe_object_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::PrimEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ParticleUpdate event System.EventHandler<LibreMetaverse.ParticleUpdateEventArgs> LibreMetaverse.ObjectManager.ParticleUpdate libremetaverse libremetaverse::ObjectManager::particle_update pub fn subscribe_particle_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParticleUpdateEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.PayPriceReply event System.EventHandler<LibreMetaverse.PayPriceReplyEventArgs> LibreMetaverse.ObjectManager.PayPriceReply libremetaverse libremetaverse::ObjectManager::pay_price_reply pub fn subscribe_pay_price_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::PayPriceReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.PhysicsProperties event System.EventHandler<LibreMetaverse.PhysicsPropertiesEventArgs> LibreMetaverse.ObjectManager.PhysicsProperties libremetaverse libremetaverse::ObjectManager::physics_properties pub fn subscribe_physics_properties(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::PhysicsPropertiesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.TerseObjectUpdate event System.EventHandler<LibreMetaverse.TerseObjectUpdateEventArgs> LibreMetaverse.ObjectManager.TerseObjectUpdate libremetaverse libremetaverse::ObjectManager::terse_object_update pub fn subscribe_terse_object_update(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::TerseObjectUpdateEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ForceSelectObjectsReply event System.EventHandler<LibreMetaverse.ForceSelectObjectsReplyEventArgs> LibreMetaverse.ParcelManager.ForceSelectObjectsReply libremetaverse libremetaverse::ParcelManager::force_select_objects_reply pub fn subscribe_force_select_objects_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ForceSelectObjectsReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelAccessListReply event System.EventHandler<LibreMetaverse.ParcelAccessListReplyEventArgs> LibreMetaverse.ParcelManager.ParcelAccessListReply libremetaverse libremetaverse::ParcelManager::parcel_access_list_reply pub fn subscribe_parcel_access_list_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelAccessListReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelDwellReply event System.EventHandler<LibreMetaverse.ParcelDwellReplyEventArgs> LibreMetaverse.ParcelManager.ParcelDwellReply libremetaverse libremetaverse::ParcelManager::parcel_dwell_reply pub fn subscribe_parcel_dwell_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelDwellReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelInfoReply event System.EventHandler<LibreMetaverse.ParcelInfoReplyEventArgs> LibreMetaverse.ParcelManager.ParcelInfoReply libremetaverse libremetaverse::ParcelManager::parcel_info_reply pub fn subscribe_parcel_info_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelInfoReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelMediaCommand event System.EventHandler<LibreMetaverse.ParcelMediaCommandEventArgs> LibreMetaverse.ParcelManager.ParcelMediaCommand libremetaverse libremetaverse::ParcelManager::parcel_media_command pub fn subscribe_parcel_media_command(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelMediaCommandEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelMediaUpdateReply event System.EventHandler<LibreMetaverse.ParcelMediaUpdateReplyEventArgs> LibreMetaverse.ParcelManager.ParcelMediaUpdateReply libremetaverse libremetaverse::ParcelManager::parcel_media_update_reply pub fn subscribe_parcel_media_update_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelMediaUpdateReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelObjectOwnersReply event System.EventHandler<LibreMetaverse.ParcelObjectOwnersReplyEventArgs> LibreMetaverse.ParcelManager.ParcelObjectOwnersReply libremetaverse libremetaverse::ParcelManager::parcel_object_owners_reply pub fn subscribe_parcel_object_owners_reply(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelObjectOwnersReplyEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelOverlaysDownloaded event System.EventHandler<LibreMetaverse.ParcelOverlayEventArgs> LibreMetaverse.ParcelManager.ParcelOverlaysDownloaded libremetaverse libremetaverse::ParcelManager::parcel_overlays_downloaded pub fn subscribe_parcel_overlays_downloaded(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelOverlayEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelProperties event System.EventHandler<LibreMetaverse.ParcelPropertiesEventArgs> LibreMetaverse.ParcelManager.ParcelProperties libremetaverse libremetaverse::ParcelManager::parcel_properties pub fn subscribe_parcel_properties(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::ParcelPropertiesEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.SimParcelsDownloaded event System.EventHandler<LibreMetaverse.SimParcelsDownloadedEventArgs> LibreMetaverse.ParcelManager.SimParcelsDownloaded libremetaverse libremetaverse::ParcelManager::sim_parcels_downloaded pub fn subscribe_sim_parcels_downloaded(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::SimParcelsDownloadedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.RLV.RlvRestrictionManager.RestrictionUpdated event System.EventHandler<LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs> LibreMetaverse.RLV.RlvRestrictionManager.RestrictionUpdated libremetaverse-rlv libremetaverse_rlv::RlvRestrictionManager::restriction_updated pub fn subscribe_restriction_updated(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_rlv::event_arguments::RestrictionUpdatedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.SoundManager.AttachedSound event System.EventHandler<LibreMetaverse.AttachedSoundEventArgs> LibreMetaverse.SoundManager.AttachedSound libremetaverse libremetaverse::SoundManager::attached_sound pub fn subscribe_attached_sound(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AttachedSoundEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.SoundManager.AttachedSoundGainChange event System.EventHandler<LibreMetaverse.AttachedSoundGainChangeEventArgs> LibreMetaverse.SoundManager.AttachedSoundGainChange libremetaverse libremetaverse::SoundManager::attached_sound_gain_change pub fn subscribe_attached_sound_gain_change(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::AttachedSoundGainChangeEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.SoundManager.PreloadSound event System.EventHandler<LibreMetaverse.PreloadSoundEventArgs> LibreMetaverse.SoundManager.PreloadSound libremetaverse libremetaverse::SoundManager::preload_sound pub fn subscribe_preload_sound(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::PreloadSoundEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.SoundManager.SoundTrigger event System.EventHandler<LibreMetaverse.SoundTriggerEventArgs> LibreMetaverse.SoundManager.SoundTrigger libremetaverse libremetaverse::SoundManager::sound_trigger pub fn subscribe_sound_trigger(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::SoundTriggerEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.TerrainManager.LandPatchReceived event System.EventHandler<LibreMetaverse.LandPatchReceivedEventArgs> LibreMetaverse.TerrainManager.LandPatchReceived libremetaverse libremetaverse::TerrainManager::land_patch_received pub fn subscribe_land_patch_received(&self, handler: libremetaverse_types::compat::EventHandler<libremetaverse::LandPatchReceivedEventArgs>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.LslSyntax.SyntaxChanged event System.EventHandler LibreMetaverse.LslSyntax.SyntaxChanged libremetaverse libremetaverse::LslSyntax::syntax_changed pub fn subscribe_syntax_changed(&self, handler: std::sync::Arc<dyn Fn(()) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Marketplace.MarketplaceManager.Error event System.EventHandler<LibreMetaverse.Marketplace.MarketplaceErrorEventArgs> LibreMetaverse.Marketplace.MarketplaceManager.Error libremetaverse marketplace libremetaverse::marketplace::MarketplaceManager::error pub fn subscribe_error(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::marketplace::MarketplaceErrorEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Marketplace.MarketplaceManager.ListingChanged event System.EventHandler<LibreMetaverse.Marketplace.MarketplaceListingChangedEventArgs> LibreMetaverse.Marketplace.MarketplaceManager.ListingChanged libremetaverse marketplace libremetaverse::marketplace::MarketplaceManager::listing_changed pub fn subscribe_listing_changed(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::marketplace::MarketplaceListingChangedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Marketplace.MarketplaceManager.ListingsSynced event System.EventHandler<LibreMetaverse.Marketplace.MarketplaceListingsSyncedEventArgs> LibreMetaverse.Marketplace.MarketplaceManager.ListingsSynced libremetaverse marketplace libremetaverse::marketplace::MarketplaceManager::listings_synced pub fn subscribe_listings_synced(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::marketplace::MarketplaceListingsSyncedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.Disconnected event System.EventHandler<LibreMetaverse.DisconnectedEventArgs> LibreMetaverse.NetworkManager.Disconnected libremetaverse libremetaverse::NetworkManager::disconnected pub fn subscribe_disconnected(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::DisconnectedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.EventQueueRunning event System.EventHandler<LibreMetaverse.EventQueueRunningEventArgs> LibreMetaverse.NetworkManager.EventQueueRunning libremetaverse libremetaverse::NetworkManager::event_queue_running pub fn subscribe_event_queue_running(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::EventQueueRunningEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.GenericStreamingMessage event System.EventHandler<LibreMetaverse.GenericStreamingMessageEventArgs> LibreMetaverse.NetworkManager.GenericStreamingMessage libremetaverse libremetaverse::NetworkManager::generic_streaming_message pub fn subscribe_generic_streaming_message(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::GenericStreamingMessageEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.LoggedOut event System.EventHandler<LibreMetaverse.LoggedOutEventArgs> LibreMetaverse.NetworkManager.LoggedOut libremetaverse libremetaverse::NetworkManager::logged_out pub fn subscribe_logged_out(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::LoggedOutEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.LoginProgress event System.EventHandler<LibreMetaverse.LoginProgressEventArgs> LibreMetaverse.NetworkManager.LoginProgress libremetaverse libremetaverse::NetworkManager::login_progress pub fn subscribe_login_progress(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::LoginProgressEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.PacketSent event System.EventHandler<LibreMetaverse.PacketSentEventArgs> LibreMetaverse.NetworkManager.PacketSent libremetaverse libremetaverse::NetworkManager::packet_sent pub fn subscribe_packet_sent(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::PacketSentEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.SimChanged event System.EventHandler<LibreMetaverse.SimChangedEventArgs> LibreMetaverse.NetworkManager.SimChanged libremetaverse libremetaverse::NetworkManager::sim_changed pub fn subscribe_sim_changed(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::SimChangedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.SimConnected event System.EventHandler<LibreMetaverse.SimConnectedEventArgs> LibreMetaverse.NetworkManager.SimConnected libremetaverse libremetaverse::NetworkManager::sim_connected pub fn subscribe_sim_connected(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::SimConnectedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.SimConnecting event System.EventHandler<LibreMetaverse.SimConnectingEventArgs> LibreMetaverse.NetworkManager.SimConnecting libremetaverse libremetaverse::NetworkManager::sim_connecting pub fn subscribe_sim_connecting(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::SimConnectingEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.NetworkManager.SimDisconnected event System.EventHandler<LibreMetaverse.SimDisconnectedEventArgs> LibreMetaverse.NetworkManager.SimDisconnected libremetaverse libremetaverse::NetworkManager::sim_disconnected pub fn subscribe_sim_disconnected(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::SimDisconnectedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.AvatarSitChanged event System.EventHandler<LibreMetaverse.AvatarSitChangedEventArgs> LibreMetaverse.ObjectManager.AvatarSitChanged libremetaverse libremetaverse::ObjectManager::avatar_sit_changed pub fn subscribe_avatar_sit_changed(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarSitChangedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.AvatarUpdate event System.EventHandler<LibreMetaverse.AvatarUpdateEventArgs> LibreMetaverse.ObjectManager.AvatarUpdate libremetaverse libremetaverse::ObjectManager::avatar_update pub fn subscribe_avatar_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AvatarUpdateEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.KillObject event System.EventHandler<LibreMetaverse.KillObjectEventArgs> LibreMetaverse.ObjectManager.KillObject libremetaverse libremetaverse::ObjectManager::kill_object pub fn subscribe_kill_object(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::KillObjectEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.KillObjects event System.EventHandler<LibreMetaverse.KillObjectsEventArgs> LibreMetaverse.ObjectManager.KillObjects libremetaverse libremetaverse::ObjectManager::kill_objects pub fn subscribe_kill_objects(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::KillObjectsEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectAnimation event System.EventHandler<LibreMetaverse.ObjectAnimationEventArgs> LibreMetaverse.ObjectManager.ObjectAnimation libremetaverse libremetaverse::ObjectManager::object_animation pub fn subscribe_object_animation(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ObjectAnimationEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectDataBlockUpdate event System.EventHandler<LibreMetaverse.ObjectDataBlockUpdateEventArgs> LibreMetaverse.ObjectManager.ObjectDataBlockUpdate libremetaverse libremetaverse::ObjectManager::object_data_block_update pub fn subscribe_object_data_block_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ObjectDataBlockUpdateEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectProperties event System.EventHandler<LibreMetaverse.ObjectPropertiesEventArgs> LibreMetaverse.ObjectManager.ObjectProperties libremetaverse libremetaverse::ObjectManager::object_properties pub fn subscribe_object_properties(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ObjectPropertiesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectPropertiesFamily event System.EventHandler<LibreMetaverse.ObjectPropertiesFamilyEventArgs> LibreMetaverse.ObjectManager.ObjectPropertiesFamily libremetaverse libremetaverse::ObjectManager::object_properties_family pub fn subscribe_object_properties_family(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ObjectPropertiesFamilyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectPropertiesUpdated event System.EventHandler<LibreMetaverse.ObjectPropertiesUpdatedEventArgs> LibreMetaverse.ObjectManager.ObjectPropertiesUpdated libremetaverse libremetaverse::ObjectManager::object_properties_updated pub fn subscribe_object_properties_updated(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ObjectPropertiesUpdatedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ObjectUpdate event System.EventHandler<LibreMetaverse.PrimEventArgs> LibreMetaverse.ObjectManager.ObjectUpdate libremetaverse libremetaverse::ObjectManager::object_update pub fn subscribe_object_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::PrimEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.ParticleUpdate event System.EventHandler<LibreMetaverse.ParticleUpdateEventArgs> LibreMetaverse.ObjectManager.ParticleUpdate libremetaverse libremetaverse::ObjectManager::particle_update pub fn subscribe_particle_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParticleUpdateEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.PayPriceReply event System.EventHandler<LibreMetaverse.PayPriceReplyEventArgs> LibreMetaverse.ObjectManager.PayPriceReply libremetaverse libremetaverse::ObjectManager::pay_price_reply pub fn subscribe_pay_price_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::PayPriceReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.PhysicsProperties event System.EventHandler<LibreMetaverse.PhysicsPropertiesEventArgs> LibreMetaverse.ObjectManager.PhysicsProperties libremetaverse libremetaverse::ObjectManager::physics_properties pub fn subscribe_physics_properties(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::PhysicsPropertiesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ObjectManager.TerseObjectUpdate event System.EventHandler<LibreMetaverse.TerseObjectUpdateEventArgs> LibreMetaverse.ObjectManager.TerseObjectUpdate libremetaverse libremetaverse::ObjectManager::terse_object_update pub fn subscribe_terse_object_update(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::TerseObjectUpdateEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ForceSelectObjectsReply event System.EventHandler<LibreMetaverse.ForceSelectObjectsReplyEventArgs> LibreMetaverse.ParcelManager.ForceSelectObjectsReply libremetaverse libremetaverse::ParcelManager::force_select_objects_reply pub fn subscribe_force_select_objects_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ForceSelectObjectsReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelAccessListReply event System.EventHandler<LibreMetaverse.ParcelAccessListReplyEventArgs> LibreMetaverse.ParcelManager.ParcelAccessListReply libremetaverse libremetaverse::ParcelManager::parcel_access_list_reply pub fn subscribe_parcel_access_list_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelAccessListReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelDwellReply event System.EventHandler<LibreMetaverse.ParcelDwellReplyEventArgs> LibreMetaverse.ParcelManager.ParcelDwellReply libremetaverse libremetaverse::ParcelManager::parcel_dwell_reply pub fn subscribe_parcel_dwell_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelDwellReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelInfoReply event System.EventHandler<LibreMetaverse.ParcelInfoReplyEventArgs> LibreMetaverse.ParcelManager.ParcelInfoReply libremetaverse libremetaverse::ParcelManager::parcel_info_reply pub fn subscribe_parcel_info_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelInfoReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelMediaCommand event System.EventHandler<LibreMetaverse.ParcelMediaCommandEventArgs> LibreMetaverse.ParcelManager.ParcelMediaCommand libremetaverse libremetaverse::ParcelManager::parcel_media_command pub fn subscribe_parcel_media_command(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelMediaCommandEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelMediaUpdateReply event System.EventHandler<LibreMetaverse.ParcelMediaUpdateReplyEventArgs> LibreMetaverse.ParcelManager.ParcelMediaUpdateReply libremetaverse libremetaverse::ParcelManager::parcel_media_update_reply pub fn subscribe_parcel_media_update_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelMediaUpdateReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelObjectOwnersReply event System.EventHandler<LibreMetaverse.ParcelObjectOwnersReplyEventArgs> LibreMetaverse.ParcelManager.ParcelObjectOwnersReply libremetaverse libremetaverse::ParcelManager::parcel_object_owners_reply pub fn subscribe_parcel_object_owners_reply(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelObjectOwnersReplyEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelOverlaysDownloaded event System.EventHandler<LibreMetaverse.ParcelOverlayEventArgs> LibreMetaverse.ParcelManager.ParcelOverlaysDownloaded libremetaverse libremetaverse::ParcelManager::parcel_overlays_downloaded pub fn subscribe_parcel_overlays_downloaded(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelOverlayEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.ParcelProperties event System.EventHandler<LibreMetaverse.ParcelPropertiesEventArgs> LibreMetaverse.ParcelManager.ParcelProperties libremetaverse libremetaverse::ParcelManager::parcel_properties pub fn subscribe_parcel_properties(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::ParcelPropertiesEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.ParcelManager.SimParcelsDownloaded event System.EventHandler<LibreMetaverse.SimParcelsDownloadedEventArgs> LibreMetaverse.ParcelManager.SimParcelsDownloaded libremetaverse libremetaverse::ParcelManager::sim_parcels_downloaded pub fn subscribe_sim_parcels_downloaded(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::SimParcelsDownloadedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.RLV.RlvRestrictionManager.RestrictionUpdated event System.EventHandler<LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs> LibreMetaverse.RLV.RlvRestrictionManager.RestrictionUpdated libremetaverse-rlv libremetaverse_rlv::RlvRestrictionManager::restriction_updated pub fn subscribe_restriction_updated(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_rlv::event_arguments::RestrictionUpdatedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.SoundManager.AttachedSound event System.EventHandler<LibreMetaverse.AttachedSoundEventArgs> LibreMetaverse.SoundManager.AttachedSound libremetaverse libremetaverse::SoundManager::attached_sound pub fn subscribe_attached_sound(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AttachedSoundEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.SoundManager.AttachedSoundGainChange event System.EventHandler<LibreMetaverse.AttachedSoundGainChangeEventArgs> LibreMetaverse.SoundManager.AttachedSoundGainChange libremetaverse libremetaverse::SoundManager::attached_sound_gain_change pub fn subscribe_attached_sound_gain_change(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::AttachedSoundGainChangeEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.SoundManager.PreloadSound event System.EventHandler<LibreMetaverse.PreloadSoundEventArgs> LibreMetaverse.SoundManager.PreloadSound libremetaverse libremetaverse::SoundManager::preload_sound pub fn subscribe_preload_sound(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::PreloadSoundEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.SoundManager.SoundTrigger event System.EventHandler<LibreMetaverse.SoundTriggerEventArgs> LibreMetaverse.SoundManager.SoundTrigger libremetaverse libremetaverse::SoundManager::sound_trigger pub fn subscribe_sound_trigger(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::SoundTriggerEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.TerrainManager.LandPatchReceived event System.EventHandler<LibreMetaverse.LandPatchReceivedEventArgs> LibreMetaverse.TerrainManager.LandPatchReceived libremetaverse libremetaverse::TerrainManager::land_patch_received pub fn subscribe_land_patch_received(&self, handler: std::sync::Arc<dyn Fn(libremetaverse::LandPatchReceivedEventArgs) + Send + Sync>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnected event LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnected libremetaverse-voice-vivox libremetaverse_voice_vivox::TCPPipe::on_disconnected pub fn subscribe_on_disconnected(&self, handler: Option<libremetaverse_voice_vivox::TCPPipeOnDisconnectedCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLine event LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLine libremetaverse-voice-vivox libremetaverse_voice_vivox::TCPPipe::on_receive_line pub fn subscribe_on_receive_line(&self, handler: Option<libremetaverse_voice_vivox::TCPPipeOnReceiveLineCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_account_login_response pub fn subscribe_on_account_login_response(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayVoiceAccountEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginStateChangeEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginStateChangeEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_account_login_state_change_event pub fn subscribe_on_account_login_state_change_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayAccountLoginStateChangeEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxAudioPropertiesEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxAudioPropertiesEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_aux_audio_properties_event pub fn subscribe_on_aux_audio_properties_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayAudioPropertiesEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetCaptureDevicesResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetCaptureDevicesResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_aux_get_capture_devices_response pub fn subscribe_on_aux_get_capture_devices_response(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetRenderDevicesResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetRenderDevicesResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_aux_get_render_devices_response pub fn subscribe_on_aux_get_render_devices_response(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnConnectorCreateResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnConnectorCreateResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_connector_create_response pub fn subscribe_on_connector_create_response(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayVoiceConnectorEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_account_login_response pub fn subscribe_on_account_login_response(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceAccountEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginStateChangeEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginStateChangeEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_account_login_state_change_event pub fn subscribe_on_account_login_state_change_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayAccountLoginStateChangeEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxAudioPropertiesEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxAudioPropertiesEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_aux_audio_properties_event pub fn subscribe_on_aux_audio_properties_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayAudioPropertiesEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetCaptureDevicesResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetCaptureDevicesResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_aux_get_capture_devices_response pub fn subscribe_on_aux_get_capture_devices_response(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetRenderDevicesResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetRenderDevicesResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_aux_get_render_devices_response pub fn subscribe_on_aux_get_render_devices_response(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnConnectorCreateResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnConnectorCreateResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_connector_create_response pub fn subscribe_on_connector_create_response(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceConnectorEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonConnected event LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonConnected libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_daemon_connected pub fn subscribe_on_daemon_connected(&self, handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonConnectedCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntConnect event LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntConnect libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_daemon_couldnt_connect pub fn subscribe_on_daemon_couldnt_connect(&self, handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonCouldntConnectCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntRun event LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntRun libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_daemon_couldnt_run pub fn subscribe_on_daemon_couldnt_run(&self, handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonCouldntRunCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonDisconnected event LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonDisconnected libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_daemon_disconnected pub fn subscribe_on_daemon_disconnected(&self, handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonDisconnectedCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonExited event LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonExited libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_daemon_exited pub fn subscribe_on_daemon_exited(&self, handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonExitedCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonRunning event LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonRunning libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_daemon_running pub fn subscribe_on_daemon_running(&self, handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonRunningCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionAddedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionAddedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_added_event pub fn subscribe_on_session_added_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewaySessionAddedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_create pub fn subscribe_on_session_create(&self, handler: Option<libremetaverse_types::compat::EventHandler<()>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreateResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreateResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_create_response pub fn subscribe_on_session_create_response(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayVoiceSessionEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionGroupAddedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionGroupAddedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_group_added_event pub fn subscribe_on_session_group_added_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewaySessionGroupAddedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionMediaEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionMediaEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_media_event pub fn subscribe_on_session_media_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewaySessionMediaEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionNewEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionNewEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_new_event pub fn subscribe_on_session_new_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayNewSessionEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantAddedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantAddedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_added_event pub fn subscribe_on_session_participant_added_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayParticipantAddedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantPropertiesEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantPropertiesEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_properties_event pub fn subscribe_on_session_participant_properties_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayParticipantPropertiesEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantRemovedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantRemovedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_removed_event pub fn subscribe_on_session_participant_removed_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayParticipantRemovedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantStateChangeEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantStateChangeEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_state_change_event pub fn subscribe_on_session_participant_state_change_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayParticipantStateChangeEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantUpdatedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantUpdatedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_updated_event pub fn subscribe_on_session_participant_updated_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayParticipantUpdatedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_remove pub fn subscribe_on_session_remove(&self, handler: Option<libremetaverse_types::compat::EventHandler<()>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemovedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemovedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_removed_event pub fn subscribe_on_session_removed_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewaySessionRemovedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionStateChangeEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionStateChangeEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_state_change_event pub fn subscribe_on_session_state_change_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewaySessionStateChangeEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionUpdatedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionUpdatedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_updated_event pub fn subscribe_on_session_updated_event(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewaySessionUpdatedEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionAddedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionAddedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_added_event pub fn subscribe_on_session_added_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionAddedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_create pub fn subscribe_on_session_create(&self, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreateResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreateResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_create_response pub fn subscribe_on_session_create_response(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceSessionEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionGroupAddedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionGroupAddedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_group_added_event pub fn subscribe_on_session_group_added_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionGroupAddedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionMediaEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionMediaEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_media_event pub fn subscribe_on_session_media_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionMediaEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionNewEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionNewEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_new_event pub fn subscribe_on_session_new_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayNewSessionEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantAddedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantAddedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_added_event pub fn subscribe_on_session_participant_added_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantAddedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantPropertiesEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantPropertiesEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_properties_event pub fn subscribe_on_session_participant_properties_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantPropertiesEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantRemovedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantRemovedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_removed_event pub fn subscribe_on_session_participant_removed_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantRemovedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantStateChangeEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantStateChangeEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_state_change_event pub fn subscribe_on_session_participant_state_change_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantStateChangeEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantUpdatedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantUpdatedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_participant_updated_event pub fn subscribe_on_session_participant_updated_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantUpdatedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_remove pub fn subscribe_on_session_remove(&self, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemovedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemovedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_removed_event pub fn subscribe_on_session_removed_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionRemovedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionStateChangeEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionStateChangeEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_state_change_event pub fn subscribe_on_session_state_change_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionStateChangeEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionUpdatedEvent event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionUpdatedEvent libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_session_updated_event pub fn subscribe_on_session_updated_event(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionUpdatedEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceConnectionChange event LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceConnectionChange libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_voice_connection_change pub fn subscribe_on_voice_connection_change(&self, handler: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceConnectionChangeCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceMicTest event LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceMicTest libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_voice_mic_test pub fn subscribe_on_voice_mic_test(&self, handler: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceMicTestCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_voice_response pub fn subscribe_on_voice_response(&self, handler: Option<libremetaverse_types::compat::EventHandler<libremetaverse_voice_vivox::VoiceGatewayVoiceResponseEventArgs>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceResponse event System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceResponse libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceGateway::on_voice_response pub fn subscribe_on_voice_response(&self, handler: Option<std::sync::Arc<dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceResponseEventArgs) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountChannelGetList event LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountChannelGetList libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceManager::on_account_channel_get_list pub fn subscribe_on_account_channel_get_list(&self, handler: Option<libremetaverse_voice_vivox::VoiceManagerBasicActionCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountLogout event LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountLogout libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceManager::on_account_logout pub fn subscribe_on_account_logout(&self, handler: Option<libremetaverse_voice_vivox::VoiceManagerBasicActionCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAuxAudioProperties event LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnAuxAudioProperties libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceManager::on_aux_audio_properties pub fn subscribe_on_aux_audio_properties(&self, handler: Option<libremetaverse_voice_vivox::VoiceManagerAuxAudioPropertiesCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
@@ -217,9 +217,9 @@ E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionConnected event LibreMetavers
E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionCreated event LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionCreated libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceManager::on_session_created pub fn subscribe_on_session_created(&self, handler: Option<libremetaverse_voice_vivox::VoiceManagerSessionCreatedCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionStateChange event LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionStateChange libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceManager::on_session_state_change pub fn subscribe_on_session_state_change(&self, handler: Option<libremetaverse_voice_vivox::VoiceManagerSessionStateChangeCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionTerminated event LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionTerminated libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceManager::on_session_terminated pub fn subscribe_on_session_terminated(&self, handler: Option<libremetaverse_voice_vivox::VoiceManagerBasicActionCallback>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceSession::on_participant_added pub fn subscribe_on_participant_added(&self, handler: Option<libremetaverse_types::compat::EventHandler<()>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceSession::on_participant_removed pub fn subscribe_on_participant_removed(&self, handler: Option<libremetaverse_types::compat::EventHandler<()>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceSession::on_participant_update pub fn subscribe_on_participant_update(&self, handler: Option<libremetaverse_types::compat::EventHandler<()>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceSession::on_participant_added pub fn subscribe_on_participant_added(&self, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceSession::on_participant_removed pub fn subscribe_on_participant_removed(&self, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate event System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate libremetaverse-voice-vivox libremetaverse_voice_vivox::VoiceSession::on_participant_update pub fn subscribe_on_participant_update(&self, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.WebRTC.PeerManager.GainMapReceived event System.Action<System.Collections.Generic.Dictionary<LibreMetaverse.UUID, System.Int32>> LibreMetaverse.Voice.WebRTC.PeerManager.GainMapReceived libremetaverse-voice-webrtc libremetaverse_voice_webrtc::PeerManager::gain_map_received pub fn subscribe_gain_map_received(&self, handler: Option<Box<dyn Fn(std::collections::HashMap<libremetaverse_types::UUID, i32>) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.WebRTC.PeerManager.MuteMapReceived event System.Action<System.Collections.Generic.Dictionary<LibreMetaverse.UUID, System.Boolean>> LibreMetaverse.Voice.WebRTC.PeerManager.MuteMapReceived libremetaverse-voice-webrtc libremetaverse_voice_webrtc::PeerManager::mute_map_received pub fn subscribe_mute_map_received(&self, handler: Option<Box<dyn Fn(std::collections::HashMap<libremetaverse_types::UUID, bool>) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
E:LibreMetaverse.Voice.WebRTC.PeerManager.PeerAudioUpdated event System.Action<LibreMetaverse.UUID, LibreMetaverse.Voice.WebRTC.VoiceSession.PeerAudioState> LibreMetaverse.Voice.WebRTC.PeerManager.PeerAudioUpdated libremetaverse-voice-webrtc libremetaverse_voice_webrtc::PeerManager::peer_audio_updated pub fn subscribe_peer_audio_updated(&self, handler: Option<Box<dyn Fn(libremetaverse_types::UUID, libremetaverse_voice_webrtc::VoiceSessionPeerAudioState) + Send + Sync>>) -> libremetaverse_types::compat::Subscription shared_self,stored_callback sync infallible_placeholder direct_snake_case subscription_guard mapped
@@ -11057,10 +11057,10 @@ M:LibreMetaverse.EstateUpdateInfoReplyEventArgs.#ctor(System.String,LibreMetaver
M:LibreMetaverse.EstateUsersReplyEventArgs.#ctor(System.UInt32,System.Int32,System.Collections.Generic.List{LibreMetaverse.UUID}) constructor LibreMetaverse.EstateUsersReplyEventArgs(System.UInt32 estateID, System.Int32 count, System.Collections.Generic.List<LibreMetaverse.UUID> allowedUsers) libremetaverse libremetaverse::EstateUsersReplyEventArgs::new pub fn new(estate_id: u32, count: i32, allowed_users: Vec<libremetaverse_types::UUID>) -> Result<Self, crate::Error> owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.EventInfoReplyEventArgs.#ctor(LibreMetaverse.DirectoryManager.EventInfo) constructor LibreMetaverse.EventInfoReplyEventArgs(LibreMetaverse.DirectoryManager.EventInfo matchedEvent) libremetaverse libremetaverse::EventInfoReplyEventArgs::new pub fn new(matched_event: libremetaverse::DirectoryManagerEventInfo) -> Result<Self, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.EventQueueRunningEventArgs.#ctor(LibreMetaverse.Simulator) constructor LibreMetaverse.EventQueueRunningEventArgs(LibreMetaverse.Simulator simulator) libremetaverse libremetaverse::EventQueueRunningEventArgs::new pub fn new(simulator: libremetaverse::Simulator) -> Result<Self, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.EventSubscriptionHelper.WaitForCondition``1(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Int32) method System.Void LibreMetaverse.EventSubscriptionHelper.WaitForCondition(System.Action<System.EventHandler<TEventArgs>> subscribe, System.Action<System.EventHandler<TEventArgs>> unsubscribe, System.Func<TEventArgs, System.Boolean> condition, System.Int32 timeoutMs) libremetaverse libremetaverse::EventSubscriptionHelper::wait_for_condition pub fn wait_for_condition<TEventArgs>(subscribe: Box<dyn Fn(libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) + Send + Sync>, unsubscribe: Box<dyn Fn(libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) + Send + Sync>, condition: Box<dyn Fn(Option<TEventArgs>) -> bool + Send + Sync>, timeout_ms: i32) -> Result<(), crate::Error> owned,owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.EventSubscriptionHelper.WaitForEventAsync``2(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Func{``0,``1},System.Int32,System.Threading.CancellationToken,``1) method System.Threading.Tasks.Task<TResult> LibreMetaverse.EventSubscriptionHelper.WaitForEventAsync(System.Action<System.EventHandler<TEventArgs>> subscribe, System.Action<System.EventHandler<TEventArgs>> unsubscribe, System.Func<TEventArgs, System.Boolean> filter, System.Func<TEventArgs, TResult> resultSelector, System.Int32 timeoutMs, System.Threading.CancellationToken cancellationToken = default, TResult defaultValue = default) libremetaverse libremetaverse::EventSubscriptionHelper::wait_for_event_with_action_action_func_func_int32_cancellation_token_t_result pub async fn wait_for_event_with_action_action_func_func_int32_cancellation_token_t_result<TEventArgs, TResult>(subscribe: Box<dyn Fn(libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) + Send + Sync>, unsubscribe: Box<dyn Fn(libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) + Send + Sync>, filter: Box<dyn Fn(Option<TEventArgs>) -> bool + Send + Sync>, result_selector: Box<dyn Fn(Option<TEventArgs>) -> Option<TResult> + Send + Sync>, timeout_ms: i32, cancellation_token: Option<libremetaverse_types::compat::CancellationToken>, default_value: Option<TResult>) -> Result<Option<TResult>, crate::Error> owned,owned,owned,owned,owned,optional_owned,optional_owned async Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.EventSubscriptionHelper.WaitForEvent``2(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Func{``0,``1},System.Int32,``1) method TResult LibreMetaverse.EventSubscriptionHelper.WaitForEvent(System.Action<System.EventHandler<TEventArgs>> subscribe, System.Action<System.EventHandler<TEventArgs>> unsubscribe, System.Func<TEventArgs, System.Boolean> filter, System.Func<TEventArgs, TResult> resultSelector, System.Int32 timeoutMs, TResult defaultValue = default) libremetaverse libremetaverse::EventSubscriptionHelper::wait_for_event_with_action_action_func_func_int32_t_result pub fn wait_for_event_with_action_action_func_func_int32_t_result<TEventArgs, TResult>(subscribe: Box<dyn Fn(libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) + Send + Sync>, unsubscribe: Box<dyn Fn(libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) + Send + Sync>, filter: Box<dyn Fn(Option<TEventArgs>) -> bool + Send + Sync>, result_selector: Box<dyn Fn(Option<TEventArgs>) -> Option<TResult> + Send + Sync>, timeout_ms: i32, default_value: Option<TResult>) -> Result<Option<TResult>, crate::Error> owned,owned,owned,owned,owned,optional_owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.EventSubscription`1.#ctor(System.Action{System.EventHandler{`0}},System.Action{System.EventHandler{`0}},System.EventHandler{`0}) constructor LibreMetaverse.EventSubscription<TEventArgs>(System.Action<System.EventHandler<TEventArgs>> subscribe, System.Action<System.EventHandler<TEventArgs>> unsubscribe, System.EventHandler<TEventArgs> handler) libremetaverse libremetaverse::EventSubscription::new pub fn new(subscribe: Box<dyn Fn(libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) + Send + Sync>, unsubscribe: Box<dyn Fn(libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) + Send + Sync>, handler: libremetaverse_types::compat::EventHandler<Option<TEventArgs>>) -> Result<Self, crate::Error> owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.EventSubscriptionHelper.WaitForCondition``1(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Int32) method System.Void LibreMetaverse.EventSubscriptionHelper.WaitForCondition(System.Action<System.EventHandler<TEventArgs>> subscribe, System.Action<System.EventHandler<TEventArgs>> unsubscribe, System.Func<TEventArgs, System.Boolean> condition, System.Int32 timeoutMs) libremetaverse libremetaverse::EventSubscriptionHelper::wait_for_condition pub fn wait_for_condition<TEventArgs>(subscribe: Box<dyn Fn(std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) + Send + Sync>, unsubscribe: Box<dyn Fn(std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) + Send + Sync>, condition: Box<dyn Fn(Option<TEventArgs>) -> bool + Send + Sync>, timeout_ms: i32) -> Result<(), crate::Error> owned,owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.EventSubscriptionHelper.WaitForEventAsync``2(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Func{``0,``1},System.Int32,System.Threading.CancellationToken,``1) method System.Threading.Tasks.Task<TResult> LibreMetaverse.EventSubscriptionHelper.WaitForEventAsync(System.Action<System.EventHandler<TEventArgs>> subscribe, System.Action<System.EventHandler<TEventArgs>> unsubscribe, System.Func<TEventArgs, System.Boolean> filter, System.Func<TEventArgs, TResult> resultSelector, System.Int32 timeoutMs, System.Threading.CancellationToken cancellationToken = default, TResult defaultValue = default) libremetaverse libremetaverse::EventSubscriptionHelper::wait_for_event_with_action_action_func_func_int32_cancellation_token_t_result pub async fn wait_for_event_with_action_action_func_func_int32_cancellation_token_t_result<TEventArgs, TResult>(subscribe: Box<dyn Fn(std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) + Send + Sync>, unsubscribe: Box<dyn Fn(std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) + Send + Sync>, filter: Box<dyn Fn(Option<TEventArgs>) -> bool + Send + Sync>, result_selector: Box<dyn Fn(Option<TEventArgs>) -> Option<TResult> + Send + Sync>, timeout_ms: i32, cancellation_token: Option<libremetaverse_types::compat::CancellationToken>, default_value: Option<TResult>) -> Result<Option<TResult>, crate::Error> owned,owned,owned,owned,owned,optional_owned,optional_owned async Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.EventSubscriptionHelper.WaitForEvent``2(System.Action{System.EventHandler{``0}},System.Action{System.EventHandler{``0}},System.Func{``0,System.Boolean},System.Func{``0,``1},System.Int32,``1) method TResult LibreMetaverse.EventSubscriptionHelper.WaitForEvent(System.Action<System.EventHandler<TEventArgs>> subscribe, System.Action<System.EventHandler<TEventArgs>> unsubscribe, System.Func<TEventArgs, System.Boolean> filter, System.Func<TEventArgs, TResult> resultSelector, System.Int32 timeoutMs, TResult defaultValue = default) libremetaverse libremetaverse::EventSubscriptionHelper::wait_for_event_with_action_action_func_func_int32_t_result pub fn wait_for_event_with_action_action_func_func_int32_t_result<TEventArgs, TResult>(subscribe: Box<dyn Fn(std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) + Send + Sync>, unsubscribe: Box<dyn Fn(std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) + Send + Sync>, filter: Box<dyn Fn(Option<TEventArgs>) -> bool + Send + Sync>, result_selector: Box<dyn Fn(Option<TEventArgs>) -> Option<TResult> + Send + Sync>, timeout_ms: i32, default_value: Option<TResult>) -> Result<Option<TResult>, crate::Error> owned,owned,owned,owned,owned,optional_owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.EventSubscription`1.#ctor(System.Action{System.EventHandler{`0}},System.Action{System.EventHandler{`0}},System.EventHandler{`0}) constructor LibreMetaverse.EventSubscription<TEventArgs>(System.Action<System.EventHandler<TEventArgs>> subscribe, System.Action<System.EventHandler<TEventArgs>> unsubscribe, System.EventHandler<TEventArgs> handler) libremetaverse libremetaverse::EventSubscription::new pub fn new(subscribe: Box<dyn Fn(std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) + Send + Sync>, unsubscribe: Box<dyn Fn(std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) + Send + Sync>, handler: std::sync::Arc<dyn Fn(Option<TEventArgs>) + Send + Sync>) -> Result<Self, crate::Error> owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.EventSubscription`1.Dispose method System.Void LibreMetaverse.EventSubscription<TEventArgs>.Dispose() libremetaverse libremetaverse::EventSubscription::dispose pub fn dispose(&self) -> Result<(), crate::Error> shared_self sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ExperienceInfoEventArgs.#ctor(LibreMetaverse.Messages.Linden.ExperienceInfoMessage) constructor LibreMetaverse.ExperienceInfoEventArgs(LibreMetaverse.Messages.Linden.ExperienceInfoMessage experienceInfo) libremetaverse libremetaverse::ExperienceInfoEventArgs::new pub fn new(experience_info: libremetaverse::messages::linden::ExperienceInfoMessage) -> Result<Self, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ExperiencePreferencesEventArgs.#ctor(LibreMetaverse.Messages.Linden.ExperiencePreferencesMessage) constructor LibreMetaverse.ExperiencePreferencesEventArgs(LibreMetaverse.Messages.Linden.ExperiencePreferencesMessage preferences) libremetaverse libremetaverse::ExperiencePreferencesEventArgs::new pub fn new(preferences: libremetaverse::messages::linden::ExperiencePreferencesMessage) -> Result<Self, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
@@ -13125,8 +13125,8 @@ M:LibreMetaverse.NetworkManager.Logout method System.Void LibreMetaverse.Network
M:LibreMetaverse.NetworkManager.LogoutAsync(System.Threading.CancellationToken) method System.Threading.Tasks.Task LibreMetaverse.NetworkManager.LogoutAsync(System.Threading.CancellationToken cancellationToken = default) libremetaverse libremetaverse::NetworkManager::logout_with_cancellation_token pub async fn logout_with_cancellation_token(&self, cancellation_token: Option<libremetaverse_types::compat::CancellationToken>) -> Result<(), crate::Error> shared_self,optional_owned async Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.NetworkManager.OutgoingPacket.#ctor(LibreMetaverse.Simulator,LibreMetaverse.UDPPacketBuffer,LibreMetaverse.Packets.PacketType) constructor LibreMetaverse.NetworkManager.OutgoingPacket(LibreMetaverse.Simulator simulator, LibreMetaverse.UDPPacketBuffer buffer, LibreMetaverse.Packets.PacketType type) libremetaverse libremetaverse::NetworkManagerOutgoingPacket::new pub fn new(simulator: libremetaverse::Simulator, buffer: libremetaverse::UDPPacketBuffer, type_: libremetaverse::packets::PacketType) -> Result<Self, crate::Error> owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.NetworkManager.RefreshMac method System.Void LibreMetaverse.NetworkManager.RefreshMac() libremetaverse libremetaverse::NetworkManager::refresh_mac pub fn refresh_mac() -> Result<(), crate::Error> none sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs}) method System.Void LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType type, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> callback) libremetaverse libremetaverse::NetworkManager::register_callback_with_packet_type_event_handler pub fn register_callback_with_packet_type_event_handler(&self, type_: libremetaverse::packets::PacketType, callback: libremetaverse_types::compat::EventHandler<libremetaverse::PacketReceivedEventArgs>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs},System.Boolean) method System.Void LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType type, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> callback, System.Boolean isAsync) libremetaverse libremetaverse::NetworkManager::register_callback_with_packet_type_event_handler_boolean pub fn register_callback_with_packet_type_event_handler_boolean(&self, type_: libremetaverse::packets::PacketType, callback: libremetaverse_types::compat::EventHandler<libremetaverse::PacketReceivedEventArgs>, is_async: bool) -> Result<(), crate::Error> shared_self,owned,owned,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs}) method System.Void LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType type, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> callback) libremetaverse libremetaverse::NetworkManager::register_callback_with_packet_type_event_handler pub fn register_callback_with_packet_type_event_handler(&self, type_: libremetaverse::packets::PacketType, callback: std::sync::Arc<dyn Fn(libremetaverse::PacketReceivedEventArgs) + Send + Sync>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs},System.Boolean) method System.Void LibreMetaverse.NetworkManager.RegisterCallback(LibreMetaverse.Packets.PacketType type, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> callback, System.Boolean isAsync) libremetaverse libremetaverse::NetworkManager::register_callback_with_packet_type_event_handler_boolean pub fn register_callback_with_packet_type_event_handler_boolean(&self, type_: libremetaverse::packets::PacketType, callback: std::sync::Arc<dyn Fn(libremetaverse::PacketReceivedEventArgs) + Send + Sync>, is_async: bool) -> Result<(), crate::Error> shared_self,owned,owned,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.NetworkManager.RegisterEventCallback(System.String,LibreMetaverse.Caps.EventQueueCallback) method System.Void LibreMetaverse.NetworkManager.RegisterEventCallback(System.String capsEvent, LibreMetaverse.Caps.EventQueueCallback callback) libremetaverse libremetaverse::NetworkManager::register_event_callback pub fn register_event_callback(&self, caps_event: String, callback: libremetaverse::CapsEventQueueCallback) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.NetworkManager.RegisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback) method System.Void LibreMetaverse.NetworkManager.RegisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback callback) libremetaverse libremetaverse::NetworkManager::register_login_response_callback_with_login_response_callback pub fn register_login_response_callback_with_login_response_callback(&self, callback: libremetaverse::NetworkManagerLoginResponseCallback) -> Result<(), crate::Error> shared_self,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.NetworkManager.RegisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback,System.String[]) method System.Void LibreMetaverse.NetworkManager.RegisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback callback, System.String[] options) libremetaverse libremetaverse::NetworkManager::register_login_response_callback_with_login_response_callback_string_array pub fn register_login_response_callback_with_login_response_callback_string_array(&self, callback: libremetaverse::NetworkManagerLoginResponseCallback, options: Option<Vec<String>>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
@@ -13137,7 +13137,7 @@ M:LibreMetaverse.NetworkManager.Shutdown(LibreMetaverse.NetworkManager.Disconnec
M:LibreMetaverse.NetworkManager.Shutdown(LibreMetaverse.NetworkManager.DisconnectType,System.String) method System.Void LibreMetaverse.NetworkManager.Shutdown(LibreMetaverse.NetworkManager.DisconnectType type, System.String message) libremetaverse libremetaverse::NetworkManager::shutdown_with_disconnect_type_string pub fn shutdown_with_disconnect_type_string(&self, type_: libremetaverse::NetworkManagerDisconnectType, message: String) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.NetworkManager.ShutdownAsync(LibreMetaverse.NetworkManager.DisconnectType,System.String) method System.Threading.Tasks.Task LibreMetaverse.NetworkManager.ShutdownAsync(LibreMetaverse.NetworkManager.DisconnectType type, System.String message) libremetaverse libremetaverse::NetworkManager::shutdown_with_disconnect_type_string_7641243c pub async fn shutdown_with_disconnect_type_string_7641243c(&self, type_: libremetaverse::NetworkManagerDisconnectType, message: String) -> Result<(), crate::Error> shared_self,owned,owned async Result<_, crate::Error> descriptive_overload_name_with_stable_id method mapped
M:LibreMetaverse.NetworkManager.StartLocation(System.String,System.Int32,System.Int32,System.Int32) method System.String LibreMetaverse.NetworkManager.StartLocation(System.String sim, System.Int32 x, System.Int32 y, System.Int32 z) libremetaverse libremetaverse::NetworkManager::start_location pub fn start_location(sim: String, x: i32, y: i32, z: i32) -> Result<String, crate::Error> owned,owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.NetworkManager.UnregisterCallback(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs}) method System.Void LibreMetaverse.NetworkManager.UnregisterCallback(LibreMetaverse.Packets.PacketType type, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> callback) libremetaverse libremetaverse::NetworkManager::unregister_callback pub fn unregister_callback(&self, type_: libremetaverse::packets::PacketType, callback: libremetaverse_types::compat::EventHandler<libremetaverse::PacketReceivedEventArgs>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.NetworkManager.UnregisterCallback(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs}) method System.Void LibreMetaverse.NetworkManager.UnregisterCallback(LibreMetaverse.Packets.PacketType type, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> callback) libremetaverse libremetaverse::NetworkManager::unregister_callback pub fn unregister_callback(&self, type_: libremetaverse::packets::PacketType, callback: std::sync::Arc<dyn Fn(libremetaverse::PacketReceivedEventArgs) + Send + Sync>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.NetworkManager.UnregisterEventCallback(System.String,LibreMetaverse.Caps.EventQueueCallback) method System.Void LibreMetaverse.NetworkManager.UnregisterEventCallback(System.String capsEvent, LibreMetaverse.Caps.EventQueueCallback callback) libremetaverse libremetaverse::NetworkManager::unregister_event_callback pub fn unregister_event_callback(&self, caps_event: String, callback: libremetaverse::CapsEventQueueCallback) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.NetworkManager.UnregisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback) method System.Void LibreMetaverse.NetworkManager.UnregisterLoginResponseCallback(LibreMetaverse.NetworkManager.LoginResponseCallback callback) libremetaverse libremetaverse::NetworkManager::unregister_login_response_callback pub fn unregister_login_response_callback(&self, callback: libremetaverse::NetworkManagerLoginResponseCallback) -> Result<(), crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObjectAnimationEventArgs.#ctor(LibreMetaverse.Simulator,LibreMetaverse.UUID,System.Collections.Generic.List{LibreMetaverse.Animation}) constructor LibreMetaverse.ObjectAnimationEventArgs(LibreMetaverse.Simulator simulator, LibreMetaverse.UUID objectID, System.Collections.Generic.List<LibreMetaverse.Animation> anims) libremetaverse libremetaverse::ObjectAnimationEventArgs::new pub fn new(simulator: libremetaverse::Simulator, object_id: libremetaverse_types::UUID, anims: Vec<libremetaverse::Animation>) -> Result<Self, crate::Error> owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
@@ -13216,7 +13216,7 @@ M:LibreMetaverse.ObjectPropertiesUpdatedEventArgs.#ctor(LibreMetaverse.Simulator
M:LibreMetaverse.ObservableDictionary`2.#ctor constructor LibreMetaverse.ObservableDictionary<TKey, TValue>() libremetaverse libremetaverse::ObservableDictionary::new_with_constructor pub fn new_with_constructor() -> Result<Self, crate::Error> none sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.ObservableDictionary`2.#ctor(System.Int32) constructor LibreMetaverse.ObservableDictionary<TKey, TValue>(System.Int32 capacity) libremetaverse libremetaverse::ObservableDictionary::new_with_int32 pub fn new_with_int32(capacity: i32) -> Result<Self, crate::Error> owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.ObservableDictionary`2.Add(`0,`1) method System.Void LibreMetaverse.ObservableDictionary<TKey, TValue>.Add(TKey key, TValue value) libremetaverse libremetaverse::ObservableDictionary::add pub fn add(&self, key: TKey, value: Option<TValue>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.AddDelegate(LibreMetaverse.DictionaryEventAction,LibreMetaverse.DictionaryChangeCallback) method System.Void LibreMetaverse.ObservableDictionary<TKey, TValue>.AddDelegate(LibreMetaverse.DictionaryEventAction action, LibreMetaverse.DictionaryChangeCallback callback) libremetaverse libremetaverse::ObservableDictionary::add_delegate pub fn add_delegate(&self, action: libremetaverse::DictionaryEventAction, callback: libremetaverse::DictionaryChangeCallback) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.AddDelegate(LibreMetaverse.DictionaryEventAction,LibreMetaverse.DictionaryChangeCallback) method System.Void LibreMetaverse.ObservableDictionary<TKey, TValue>.AddDelegate(LibreMetaverse.DictionaryEventAction action, LibreMetaverse.DictionaryChangeCallback callback) libremetaverse libremetaverse::ObservableDictionary::add_delegate pub fn add_delegate(&self, action: libremetaverse::DictionaryEventAction, callback: std::sync::Arc<dyn Fn(libremetaverse::DictionaryEventAction, libremetaverse_types::compat::DictionaryEntry) + Send + Sync>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.Clear method System.Void LibreMetaverse.ObservableDictionary<TKey, TValue>.Clear() libremetaverse libremetaverse::ObservableDictionary::clear pub fn clear(&self) -> Result<(), crate::Error> shared_self sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.ContainsKey(`0) method System.Boolean LibreMetaverse.ObservableDictionary<TKey, TValue>.ContainsKey(TKey key) libremetaverse libremetaverse::ObservableDictionary::contains_key pub fn contains_key(&self, key: TKey) -> Result<bool, crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.ContainsValue(`1) method System.Boolean LibreMetaverse.ObservableDictionary<TKey, TValue>.ContainsValue(TValue value) libremetaverse libremetaverse::ObservableDictionary::contains_value pub fn contains_value(&self, value: Option<TValue>) -> Result<bool, crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
@@ -13225,12 +13225,12 @@ M:LibreMetaverse.ObservableDictionary`2.FindAll(System.Predicate{`0}) method Sys
M:LibreMetaverse.ObservableDictionary`2.FindAll(System.Predicate{`1}) method System.Collections.Generic.List<TValue> LibreMetaverse.ObservableDictionary<TKey, TValue>.FindAll(System.Predicate<TValue> match) libremetaverse libremetaverse::ObservableDictionary::find_all_with_predicate_6d98ccd2 pub fn find_all_with_predicate_6d98ccd2(&self, match_: Box<dyn Fn(&Option<TValue>) -> bool + Send + Sync>) -> Result<Vec<Option<TValue>>, crate::Error> shared_self,owned sync Result<_, crate::Error> descriptive_overload_name_with_stable_id method mapped
M:LibreMetaverse.ObservableDictionary`2.GetEnumerator method System.Collections.IEnumerator LibreMetaverse.ObservableDictionary<TKey, TValue>.GetEnumerator() libremetaverse libremetaverse::ObservableDictionary::get_enumerator pub fn get_enumerator(&self) -> Result<libremetaverse_types::compat::IEnumerator, crate::Error> shared_self sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.Remove(`0) method System.Boolean LibreMetaverse.ObservableDictionary<TKey, TValue>.Remove(TKey key) libremetaverse libremetaverse::ObservableDictionary::remove pub fn remove(&self, key: TKey) -> Result<bool, crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.RemoveDelegate(LibreMetaverse.DictionaryEventAction,LibreMetaverse.DictionaryChangeCallback) method System.Void LibreMetaverse.ObservableDictionary<TKey, TValue>.RemoveDelegate(LibreMetaverse.DictionaryEventAction action, LibreMetaverse.DictionaryChangeCallback callback) libremetaverse libremetaverse::ObservableDictionary::remove_delegate pub fn remove_delegate(&self, action: libremetaverse::DictionaryEventAction, callback: libremetaverse::DictionaryChangeCallback) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.RemoveDelegate(LibreMetaverse.DictionaryEventAction,LibreMetaverse.DictionaryChangeCallback) method System.Void LibreMetaverse.ObservableDictionary<TKey, TValue>.RemoveDelegate(LibreMetaverse.DictionaryEventAction action, LibreMetaverse.DictionaryChangeCallback callback) libremetaverse libremetaverse::ObservableDictionary::remove_delegate pub fn remove_delegate(&self, action: libremetaverse::DictionaryEventAction, callback: std::sync::Arc<dyn Fn(libremetaverse::DictionaryEventAction, libremetaverse_types::compat::DictionaryEntry) + Send + Sync>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ObservableDictionary`2.TryGetValue(`0,`1@) method System.Boolean LibreMetaverse.ObservableDictionary<TKey, TValue>.TryGetValue(TKey key, out TValue& value) libremetaverse libremetaverse::ObservableDictionary::try_get_value pub fn try_get_value(&self, key: TKey, value: &mut Option<TValue>) -> bool shared_self,owned,mutable_output sync infallible_placeholder direct_snake_case method mapped
M:LibreMetaverse.PacketEventDictionary.#ctor(LibreMetaverse.GridClient) constructor LibreMetaverse.PacketEventDictionary(LibreMetaverse.GridClient client) libremetaverse libremetaverse::PacketEventDictionary::new pub fn new(client: libremetaverse::GridClient) -> Result<Self, crate::Error> owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.PacketEventDictionary.InvokeRaiseEvent(LibreMetaverse.Packets.PacketType,LibreMetaverse.Packets.Packet,LibreMetaverse.Simulator) method System.Void LibreMetaverse.PacketEventDictionary.InvokeRaiseEvent(LibreMetaverse.Packets.PacketType packetType, LibreMetaverse.Packets.Packet packet, LibreMetaverse.Simulator simulator) libremetaverse libremetaverse::PacketEventDictionary::invoke_raise_event pub fn invoke_raise_event(&self, packet_type: libremetaverse::packets::PacketType, packet: libremetaverse::packets::Packet, simulator: libremetaverse::Simulator) -> Result<(), crate::Error> shared_self,owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.PacketEventDictionary.RegisterEvent(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs},System.Boolean) method System.Void LibreMetaverse.PacketEventDictionary.RegisterEvent(LibreMetaverse.Packets.PacketType packetType, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> eventHandler, System.Boolean isAsync) libremetaverse libremetaverse::PacketEventDictionary::register_event pub fn register_event(&self, packet_type: libremetaverse::packets::PacketType, event_handler: libremetaverse_types::compat::EventHandler<libremetaverse::PacketReceivedEventArgs>, is_async: bool) -> Result<(), crate::Error> shared_self,owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.PacketEventDictionary.UnregisterEvent(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs}) method System.Void LibreMetaverse.PacketEventDictionary.UnregisterEvent(LibreMetaverse.Packets.PacketType packetType, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> eventHandler) libremetaverse libremetaverse::PacketEventDictionary::unregister_event pub fn unregister_event(&self, packet_type: libremetaverse::packets::PacketType, event_handler: libremetaverse_types::compat::EventHandler<libremetaverse::PacketReceivedEventArgs>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.PacketEventDictionary.RegisterEvent(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs},System.Boolean) method System.Void LibreMetaverse.PacketEventDictionary.RegisterEvent(LibreMetaverse.Packets.PacketType packetType, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> eventHandler, System.Boolean isAsync) libremetaverse libremetaverse::PacketEventDictionary::register_event pub fn register_event(&self, packet_type: libremetaverse::packets::PacketType, event_handler: std::sync::Arc<dyn Fn(libremetaverse::PacketReceivedEventArgs) + Send + Sync>, is_async: bool) -> Result<(), crate::Error> shared_self,owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.PacketEventDictionary.UnregisterEvent(LibreMetaverse.Packets.PacketType,System.EventHandler{LibreMetaverse.PacketReceivedEventArgs}) method System.Void LibreMetaverse.PacketEventDictionary.UnregisterEvent(LibreMetaverse.Packets.PacketType packetType, System.EventHandler<LibreMetaverse.PacketReceivedEventArgs> eventHandler) libremetaverse libremetaverse::PacketEventDictionary::unregister_event pub fn unregister_event(&self, packet_type: libremetaverse::packets::PacketType, event_handler: std::sync::Arc<dyn Fn(libremetaverse::PacketReceivedEventArgs) + Send + Sync>) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.PacketReceivedEventArgs.#ctor(LibreMetaverse.Packets.Packet,LibreMetaverse.Simulator) constructor LibreMetaverse.PacketReceivedEventArgs(LibreMetaverse.Packets.Packet packet, LibreMetaverse.Simulator simulator) libremetaverse libremetaverse::PacketReceivedEventArgs::new pub fn new(packet: libremetaverse::packets::Packet, simulator: libremetaverse::Simulator) -> Result<Self, crate::Error> owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.PacketSentEventArgs.#ctor(System.Byte[],System.Int32,LibreMetaverse.Simulator) constructor LibreMetaverse.PacketSentEventArgs(System.Byte[] data, System.Int32 bytesSent, LibreMetaverse.Simulator simulator) libremetaverse libremetaverse::PacketSentEventArgs::new pub fn new(data: Vec<u8>, bytes_sent: i32, simulator: libremetaverse::Simulator) -> Result<Self, crate::Error> owned,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.PacketSettings.#ctor constructor LibreMetaverse.PacketSettings() libremetaverse libremetaverse::PacketSettings::new pub fn new() -> Result<Self, crate::Error> none sync Result<_, crate::Error> direct_snake_case method mapped
Can't render this file because it is too large.

View File

@@ -3128,8 +3128,8 @@ T:System.DateTime System.DateTime System.Private.CoreLib struct std std::time::
T:System.Double System.Double System.Private.CoreLib struct core primitive f64 language not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.Enum System.Enum System.Private.CoreLib class libremetaverse-types libremetaverse_types::compat::EnumValue stdlib_or_adopted_crate not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.EventArgs System.EventArgs System.Private.CoreLib class std () stdlib_or_adopted_crate not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.EventHandler System.EventHandler System.Private.CoreLib delegate libremetaverse-types compat libremetaverse_types::compat::EventHandler<()> native_cross_platform_replacement not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.EventHandler`1 System.EventHandler<TEventArgs> System.Private.CoreLib delegate libremetaverse-types compat libremetaverse_types::compat::EventHandler<TEventArgs> native_cross_platform_replacement not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.EventHandler System.EventHandler System.Private.CoreLib delegate std sync std::sync::Arc<dyn Fn(()) + Send + Sync> stdlib_or_adopted_crate not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.EventHandler`1 System.EventHandler<TEventArgs> System.Private.CoreLib delegate std sync std::sync::Arc<dyn Fn(TEventArgs) + Send + Sync> stdlib_or_adopted_crate not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.Exception System.Exception System.Private.CoreLib class libremetaverse-types libremetaverse_types::compat::ExternalError stdlib_or_adopted_crate not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.Func`1 System.Func<TResult> System.Private.CoreLib delegate core callback Box<dyn Fn() -> TResult + Send + Sync> language not_applicable not_applicable not_applicable mapped external member surface is not copied
T:System.Func`2 System.Func<T, TResult> System.Private.CoreLib delegate core callback Box<dyn Fn(T) -> TResult + Send + Sync> language not_applicable not_applicable not_applicable mapped external member surface is not copied
Can't render this file because it is too large.

View File

@@ -1898,8 +1898,10 @@ impl RlvRestrictionManager {
pub fn subscribe_restriction_updated(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_rlv::event_arguments::RestrictionUpdatedEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_rlv::event_arguments::RestrictionUpdatedEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {

View File

@@ -152,8 +152,8 @@ impl VoiceGateway {
pub fn subscribe_on_account_login_response(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayVoiceAccountEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceAccountEventArgs) + Send + Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -165,8 +165,10 @@ impl VoiceGateway {
pub fn subscribe_on_account_login_state_change_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayAccountLoginStateChangeEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayAccountLoginStateChangeEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -178,8 +180,10 @@ impl VoiceGateway {
pub fn subscribe_on_aux_audio_properties_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayAudioPropertiesEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayAudioPropertiesEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -191,8 +195,8 @@ impl VoiceGateway {
pub fn subscribe_on_aux_get_capture_devices_response(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs) + Send + Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -204,8 +208,8 @@ impl VoiceGateway {
pub fn subscribe_on_aux_get_render_devices_response(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs) + Send + Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -217,8 +221,10 @@ impl VoiceGateway {
pub fn subscribe_on_connector_create_response(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayVoiceConnectorEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceConnectorEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -284,8 +290,8 @@ impl VoiceGateway {
pub fn subscribe_on_session_added_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewaySessionAddedEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionAddedEventArgs) + Send + Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -296,7 +302,7 @@ impl VoiceGateway {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate`.
pub fn subscribe_on_session_create(
&self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>,
handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate"
@@ -306,8 +312,8 @@ impl VoiceGateway {
pub fn subscribe_on_session_create_response(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayVoiceSessionEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceSessionEventArgs) + Send + Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -319,8 +325,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_group_added_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewaySessionGroupAddedEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionGroupAddedEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -332,8 +340,8 @@ impl VoiceGateway {
pub fn subscribe_on_session_media_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewaySessionMediaEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionMediaEventArgs) + Send + Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -345,8 +353,8 @@ impl VoiceGateway {
pub fn subscribe_on_session_new_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayNewSessionEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayNewSessionEventArgs) + Send + Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -358,8 +366,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_added_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayParticipantAddedEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantAddedEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -371,8 +381,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_properties_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayParticipantPropertiesEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantPropertiesEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -384,8 +396,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_removed_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayParticipantRemovedEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantRemovedEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -397,8 +411,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_state_change_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayParticipantStateChangeEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantStateChangeEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -410,8 +426,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_updated_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayParticipantUpdatedEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantUpdatedEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -422,7 +440,7 @@ impl VoiceGateway {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove`.
pub fn subscribe_on_session_remove(
&self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>,
handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove"
@@ -432,8 +450,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_removed_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewaySessionRemovedEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionRemovedEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -445,8 +465,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_state_change_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewaySessionStateChangeEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionStateChangeEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -458,8 +480,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_updated_event(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewaySessionUpdatedEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionUpdatedEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -489,8 +513,10 @@ impl VoiceGateway {
pub fn subscribe_on_voice_response(
&self,
handler: Option<
libremetaverse_types::compat::EventHandler<
libremetaverse_voice_vivox::VoiceGatewayVoiceResponseEventArgs,
std::sync::Arc<
dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceResponseEventArgs)
+ Send
+ Sync,
>,
>,
) -> libremetaverse_types::compat::Subscription {
@@ -3325,7 +3351,7 @@ impl VoiceSession {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded`.
pub fn subscribe_on_participant_added(
&self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>,
handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded"
@@ -3334,7 +3360,7 @@ impl VoiceSession {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved`.
pub fn subscribe_on_participant_removed(
&self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>,
handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved"
@@ -3343,7 +3369,7 @@ impl VoiceSession {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate`.
pub fn subscribe_on_participant_update(
&self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>,
handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,11 @@
//! Shared deterministic fixtures used by translated compatibility tests.
use std::collections::BTreeMap;
use std::future::Future;
use std::io;
use std::path::{Component, Path, PathBuf};
use std::sync::{Arc, Mutex};
use std::task::{Context, Poll, Wake, Waker};
use std::time::Duration;
/// Fails a not-yet-translated upstream test while retaining parity metadata.
@@ -25,6 +27,27 @@ pub fn pending(
)
}
/// Runs one test future without choosing an async runtime for the library.
pub fn block_on<F: Future>(future: F) -> F::Output {
struct ThreadWake(std::thread::Thread);
impl Wake for ThreadWake {
fn wake(self: Arc<Self>) {
self.0.unpark();
}
}
let waker = Waker::from(Arc::new(ThreadWake(std::thread::current())));
let mut context = Context::from_waker(&waker);
let mut future = std::pin::pin!(future);
loop {
match future.as_mut().poll(&mut context) {
Poll::Ready(output) => return output,
Poll::Pending => std::thread::park(),
}
}
}
/// Asserts equality within the exact absolute tolerance carried by an upstream test.
///
/// # Panics
@@ -250,6 +273,7 @@ mod tests {
#[test]
fn deterministic_harness_covers_clock_network_and_bytes() {
assert_eq!(block_on(std::future::ready(7)), 7);
assert_close(1.001, 1.0, 0.01);
assert_bytes_eq(&decode_hex("00 ff 2A").unwrap(), &[0, 255, 42]);
assert!(decode_hex("é").is_err());

View File

@@ -5,8 +5,11 @@ use libremetaverse::{
ChatEventArgs, ChatType, InventoryException, InventoryItem, InventoryManager,
TeleportEventArgs,
};
use libremetaverse_types::compat::{CancellationToken, EventHandler, Subscription};
use libremetaverse_types::compat::{CancellationToken, Subscription};
use libremetaverse_types::{AssetType, AttachmentPoint, UUID};
use std::sync::Arc;
type EventHandler<T> = Arc<dyn Fn(T) + Send + Sync>;
fn member_id<T>(result: Result<T, libremetaverse::Error>) -> &'static str {
result

View File

@@ -5,7 +5,10 @@ use libremetaverse::{
NetworkManagerDisconnectType, Settings, TexturePipeline, TexturePipelineSettings,
UDPPacketBuffer,
};
use libremetaverse_types::compat::{CancellationToken, EventHandler, IProgress, Subscription, Uri};
use libremetaverse_types::compat::{CancellationToken, IProgress, Subscription, Uri};
use std::sync::Arc;
type EventHandler<T> = Arc<dyn Fn(T) + Send + Sync>;
fn member_id<T>(result: Result<T, libremetaverse::Error>) -> &'static str {
result

View File

@@ -2719,19 +2719,6 @@ fn estate_tools_tests_request_convenant_a027d2de58bc() {
);
}
// parity-case: LibreMetaverse.Tests/EstateToolsTests.cs::EstateToolsTests.EstateInfo::test 68e1b204b4dfb56645bc6ad3a54146b2cc6ad865c298b70a2a55fc6cf148313f pending
#[test]
fn estate_tools_tests_estate_info_3bc323748179() {
pending(
"LibreMetaverse.Tests/EstateToolsTests.cs::EstateToolsTests.EstateInfo::test",
"LibreMetaverse.Tests/EstateToolsTests.cs",
176,
"EstateToolsTests.EstateInfo",
"[Test]",
"68e1b204b4dfb56645bc6ad3a54146b2cc6ad865c298b70a2a55fc6cf148313f",
);
}
// parity-case: LibreMetaverse.Tests/ExperienceListAndRegionMessageTests.cs::ExperienceListAndRegionMessageTests.ExperienceListMessage_Deserialize_ReadsExperienceIdsKey::test aa1f7d09f6c79118ea2e60621d57bd63632085ce81bc979e42294aca53d4f0d9 pending
#[test]
fn experience_list_and_region_message_tests_experience_list_message_6df527312dbb() {
@@ -5462,32 +5449,6 @@ fn network_tests_detect_objects_4781c499b3ef() {
);
}
// parity-case: LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.U64Receive::test 2d740467370db0bf967800a078aed0e810bc1a71eec76d62cb66ba8240601dac pending
#[test]
fn network_tests_u64_receive_8da31179adac() {
pending(
"LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.U64Receive::test",
"LibreMetaverse.Tests/NetworkTests.cs",
139,
"NetworkTests.U64Receive",
"[Test]",
"2d740467370db0bf967800a078aed0e810bc1a71eec76d62cb66ba8240601dac",
);
}
// parity-case: LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.Teleport::test 2ccb0fbc0939177b28b2a3ae95651ac6c30bd5292abacfc5108ba927b0f6bccd pending
#[test]
fn network_tests_teleport_65828f9c5340() {
pending(
"LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.Teleport::test",
"LibreMetaverse.Tests/NetworkTests.cs",
155,
"NetworkTests.Teleport",
"[Test]",
"2ccb0fbc0939177b28b2a3ae95651ac6c30bd5292abacfc5108ba927b0f6bccd",
);
}
// parity-case: LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.CapsQueue::test cd5af4e7d69df3e938540711877d167fe28efb9af8af7518a62b8f406e46cc18 pending
#[test]
fn network_tests_caps_queue_bbde71137aba() {
@@ -5917,32 +5878,6 @@ fn packet_tests_to_bytes_multiple_db2623f4072b() {
);
}
// parity-case: LibreMetaverse.Tests/PositionHelperTests.cs::PositionHelperTests.ToGlobalAndLocalPosition_RoundTrip::test 695c6a640e5353e02def9a1b4a1c1eabb37a8543c13466dff570f58d847e7772 pending
#[test]
fn position_helper_tests_to_global_and_local_position_round_trip_499dfd6841a4() {
pending(
"LibreMetaverse.Tests/PositionHelperTests.cs::PositionHelperTests.ToGlobalAndLocalPosition_RoundTrip::test",
"LibreMetaverse.Tests/PositionHelperTests.cs",
9,
"PositionHelperTests.ToGlobalAndLocalPosition_RoundTrip",
"[Test]",
"695c6a640e5353e02def9a1b4a1c1eabb37a8543c13466dff570f58d847e7772",
);
}
// parity-case: LibreMetaverse.Tests/PositionHelperTests.cs::PositionHelperTests.FormatCoordinates_FormatsCorrectly::test fe4256d00dab5cc2de602b7b27442cac627a5956c4ce79c05d92de830f6fc5d2 pending
#[test]
fn position_helper_tests_format_coordinates_formats_correctly_252219c4f893() {
pending(
"LibreMetaverse.Tests/PositionHelperTests.cs::PositionHelperTests.FormatCoordinates_FormatsCorrectly::test",
"LibreMetaverse.Tests/PositionHelperTests.cs",
29,
"PositionHelperTests.FormatCoordinates_FormatsCorrectly",
"[Test]",
"fe4256d00dab5cc2de602b7b27442cac627a5956c4ce79c05d92de830f6fc5d2",
);
}
// parity-case: LibreMetaverse.Tests/PrimObjectTests.cs::PrimObjectTests.PathBegin::test 5c8e14e1d08a91a4e7c3e252c932b8fe15cf6b5231cc9fe5bb7ef2ae6e2c8299 pending
#[test]
fn prim_object_tests_path_begin_612754fad0a1() {
@@ -5995,19 +5930,6 @@ fn prim_object_tests_path_scale_e37a04cd76fb() {
);
}
// parity-case: LibreMetaverse.Tests/PrimObjectTests.cs::PrimObjectTests.PathShear::test d49147475e55b06e219db0bdad056486c511b9582a6ae2601105a7b3c49844ad pending
#[test]
fn prim_object_tests_path_shear_80b89b3046e8() {
pending(
"LibreMetaverse.Tests/PrimObjectTests.cs::PrimObjectTests.PathShear::test",
"LibreMetaverse.Tests/PrimObjectTests.cs",
88,
"PrimObjectTests.PathShear",
"[Test]",
"d49147475e55b06e219db0bdad056486c511b9582a6ae2601105a7b3c49844ad",
);
}
// parity-case: LibreMetaverse.Tests/PrimObjectTests.cs::PrimObjectTests.PathTaper::test 93a0adbc0630de3c9fbea6f8080d74ef6e3180e3813f00460bce5d52ef2f12b7 pending
#[test]
fn prim_object_tests_path_taper_3c824190973b() {
@@ -14406,19 +14328,6 @@ fn rlv_restriction_manager_tests_remove_restrictions_for_objects_tr_8600b8deef21
);
}
// parity-case: LibreMetaverse.Tests/ReaderWriterLockTests.cs::ReaderWriterLockTests.MultipleReadersOneWriter_ReaderConcurrencyAndWriterExclusion::test bf63804480951667455038244228f77c30454a365b496f062051f7b34e7b2618 pending
#[test]
fn reader_writer_lock_tests_multiple_readers_one_writer_reader_conc_ade8a15ef29f() {
pending(
"LibreMetaverse.Tests/ReaderWriterLockTests.cs::ReaderWriterLockTests.MultipleReadersOneWriter_ReaderConcurrencyAndWriterExclusion::test",
"LibreMetaverse.Tests/ReaderWriterLockTests.cs",
12,
"ReaderWriterLockTests.MultipleReadersOneWriter_ReaderConcurrencyAndWriterExclusion",
"[Test]",
"bf63804480951667455038244228f77c30454a365b496f062051f7b34e7b2618",
);
}
// parity-case: LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.GetRegionRestartScheduleAsync_WeeklySchedule_ParsesDaysAndTime::test 0f64aab66c6a6d807b3d2bbc46b636a85900e4f76e35d5e3dd8cd0d8b295618b pending
#[test]
fn region_schedule_tests_get_region_restart_schedule_async_weekly_s_6053e03675af() {
@@ -15212,19 +15121,6 @@ fn terrain_material_override_tests_set_terrain_material_overrides_a_8c4f3c7893c2
);
}
// parity-case: LibreMetaverse.Tests/TextureEntryTests.cs::TextureEntryTests.RoundTrip_HighFace_TextureID_IsPreserved::test 5f215cd1c50fa8871967653b4667f848c14ff24a3b71906e51aac13c56de1f55 pending
#[test]
fn texture_entry_tests_round_trip_high_face_texture_id_is_preserved_5238ccc2188c() {
pending(
"LibreMetaverse.Tests/TextureEntryTests.cs::TextureEntryTests.RoundTrip_HighFace_TextureID_IsPreserved::test",
"LibreMetaverse.Tests/TextureEntryTests.cs",
45,
"TextureEntryTests.RoundTrip_HighFace_TextureID_IsPreserved",
"[Test]",
"5f215cd1c50fa8871967653b4667f848c14ff24a3b71906e51aac13c56de1f55",
);
}
// parity-case: LibreMetaverse.Tests/TextureEntryTests.cs::TextureEntryTests.RoundTrip_HighFace_TextureID_IsPreserved::case:d3ad6116f2458248 5f215cd1c50fa8871967653b4667f848c14ff24a3b71906e51aac13c56de1f55 pending
#[test]
fn texture_entry_tests_round_trip_high_face_texture_id_is_preserved_c347d30187c6() {
@@ -15355,97 +15251,6 @@ fn texture_entry_tests_round_trip_all_faces_texture_i_ds_all_preser_953d0ed895bf
);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.UUIDs::test 4f95d48c474bbd824254196dd605051773c711614bf661b5aa996054b6c98967 pending
#[test]
fn type_tests_uui_ds_9bf21ba61003() {
pending(
"LibreMetaverse.Tests/TypeTests.cs::TypeTests.UUIDs::test",
"LibreMetaverse.Tests/TypeTests.cs",
38,
"TypeTests.UUIDs",
"[Test]",
"4f95d48c474bbd824254196dd605051773c711614bf661b5aa996054b6c98967",
);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.Vector3ApproxEquals::test 1438175bb0c0bd8b17dd878e8fb95fb0dba82abbab71882f2ceb39ec554189d9 pending
#[test]
fn type_tests_vector3_approx_equals_1bab6a7c6f2c() {
pending(
"LibreMetaverse.Tests/TypeTests.cs::TypeTests.Vector3ApproxEquals::test",
"LibreMetaverse.Tests/TypeTests.cs",
72,
"TypeTests.Vector3ApproxEquals",
"[Test]",
"1438175bb0c0bd8b17dd878e8fb95fb0dba82abbab71882f2ceb39ec554189d9",
);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.VectorCasting::test 27c0a4b8402ef66f11dca075d8c1a0f0b647ccef9c2803125dde6ca292951cd4 pending
#[test]
fn type_tests_vector_casting_2cc55b2c8d51() {
pending(
"LibreMetaverse.Tests/TypeTests.cs::TypeTests.VectorCasting::test",
"LibreMetaverse.Tests/TypeTests.cs",
100,
"TypeTests.VectorCasting",
"[Test]",
"27c0a4b8402ef66f11dca075d8c1a0f0b647ccef9c2803125dde6ca292951cd4",
);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.Quaternions::test 071cf3ef6932e093c0fd09fe461a738e75af905707fce9a321b8f08dd89c09dd pending
#[test]
fn type_tests_quaternions_ee55bd386727() {
pending(
"LibreMetaverse.Tests/TypeTests.cs::TypeTests.Quaternions::test",
"LibreMetaverse.Tests/TypeTests.cs",
154,
"TypeTests.Quaternions",
"[Test]",
"071cf3ef6932e093c0fd09fe461a738e75af905707fce9a321b8f08dd89c09dd",
);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.TestMatrix::test 5d5ccc8b9ea1741b013fd945e42ba7e6511322fdce51998e358d42c1736457e3 pending
#[test]
fn type_tests_test_matrix_726846ec4ddb() {
pending(
"LibreMetaverse.Tests/TypeTests.cs::TypeTests.TestMatrix::test",
"LibreMetaverse.Tests/TypeTests.cs",
185,
"TypeTests.TestMatrix",
"[Test]",
"5d5ccc8b9ea1741b013fd945e42ba7e6511322fdce51998e358d42c1736457e3",
);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.VectorQuaternionMath::test 3c3cccd3bbec216e2be0e772b0912bec9faed5288da4f6bb4dff3c6f9952e113 pending
#[test]
fn type_tests_vector_quaternion_math_239214af3bde() {
pending(
"LibreMetaverse.Tests/TypeTests.cs::TypeTests.VectorQuaternionMath::test",
"LibreMetaverse.Tests/TypeTests.cs",
211,
"TypeTests.VectorQuaternionMath",
"[Test]",
"3c3cccd3bbec216e2be0e772b0912bec9faed5288da4f6bb4dff3c6f9952e113",
);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.FloatsToTerseStrings::test ce34cdfe106d5dadfa82056e7aa7690d2da748c7e753b9d2a2ad682d86327def pending
#[test]
fn type_tests_floats_to_terse_strings_004651cda9df() {
pending(
"LibreMetaverse.Tests/TypeTests.cs::TypeTests.FloatsToTerseStrings::test",
"LibreMetaverse.Tests/TypeTests.cs",
223,
"TypeTests.FloatsToTerseStrings",
"[Test]",
"ce34cdfe106d5dadfa82056e7aa7690d2da748c7e753b9d2a2ad682d86327def",
);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.BitUnpacking::test 741470d770a0a71853d84e26abaf927fc7dc385dedf0d7de87f63e7a22cb4dd7 pending
#[test]
fn type_tests_bit_unpacking_9f7b6fc4c72c() {
@@ -15563,110 +15368,6 @@ fn upload_thumbnail_tests_upload_thumbnail_async_upload_does_not_co_912d32ae591d
);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.FileHelper_SanitizeAndSafeNames::test 770d1cb751c4b8290c9443bcb4a91d17703628a157cc428c607a7d36ae0af985 pending
#[test]
fn util_unit_tests_file_helper_sanitize_and_safe_names_ebdc5251a383() {
pending(
"LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.FileHelper_SanitizeAndSafeNames::test",
"LibreMetaverse.Tests/UtilUnitTests.cs",
12,
"UtilUnitTests.FileHelper_SanitizeAndSafeNames",
"[Test]",
"770d1cb751c4b8290c9443bcb4a91d17703628a157cc428c607a7d36ae0af985",
);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.ObservableDictionary_Events_FireOnAddRemoveAndClear::test 579412c3c839e1fe5b44cf956f8d329a15d4e05c05778b4e6e3ff9b7d2fb7607 pending
#[test]
fn util_unit_tests_observable_dictionary_events_fire_on_add_remove_dec21e72d9d7() {
pending(
"LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.ObservableDictionary_Events_FireOnAddRemoveAndClear::test",
"LibreMetaverse.Tests/UtilUnitTests.cs",
33,
"UtilUnitTests.ObservableDictionary_Events_FireOnAddRemoveAndClear",
"[Test]",
"579412c3c839e1fe5b44cf956f8d329a15d4e05c05778b4e6e3ff9b7d2fb7607",
);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.EventSubscriptionHelper_WaitForEventAndAsync::test bab59e0caf1630edda9a2a6daecca95cd1a28f189fdde01b1b6afee4cd96d8cb pending
#[test]
fn util_unit_tests_event_subscription_helper_wait_for_event_and_asy_dd72b61bced8() {
pending(
"LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.EventSubscriptionHelper_WaitForEventAndAsync::test",
"LibreMetaverse.Tests/UtilUnitTests.cs",
62,
"UtilUnitTests.EventSubscriptionHelper_WaitForEventAndAsync",
"[Test]",
"bab59e0caf1630edda9a2a6daecca95cd1a28f189fdde01b1b6afee4cd96d8cb",
);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.Repeat_Interval_ExecutesAndCancels::test 43250eb6d7799ca3c00e51810b3e04d9a874bfdeafd77af6f7b78f8f6c73ff77 pending
#[test]
fn util_unit_tests_repeat_interval_executes_and_cancels_ebf1b45b8eb9() {
pending(
"LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.Repeat_Interval_ExecutesAndCancels::test",
"LibreMetaverse.Tests/UtilUnitTests.cs",
118,
"UtilUnitTests.Repeat_Interval_ExecutesAndCancels",
"[Test]",
"43250eb6d7799ca3c00e51810b3e04d9a874bfdeafd77af6f7b78f8f6c73ff77",
);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.NameValue_ParseAndToString::test f779a81d286c0028ea202bab00f8db0d1bbaea611003458918a9ec9a24207557 pending
#[test]
fn util_unit_tests_name_value_parse_and_to_string_d86a82c100bf() {
pending(
"LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.NameValue_ParseAndToString::test",
"LibreMetaverse.Tests/UtilUnitTests.cs",
141,
"UtilUnitTests.NameValue_ParseAndToString",
"[Test]",
"f779a81d286c0028ea202bab00f8db0d1bbaea611003458918a9ec9a24207557",
);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.Helpers_SplitAndFloatToTerseString::test aa2c378f56cfd04d6d4cfa50cd3efafd2b2d479d681336d72fbb9d5ec5c363e6 pending
#[test]
fn util_unit_tests_helpers_split_and_float_to_terse_string_7b31c6f6d09a() {
pending(
"LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.Helpers_SplitAndFloatToTerseString::test",
"LibreMetaverse.Tests/UtilUnitTests.cs",
153,
"UtilUnitTests.Helpers_SplitAndFloatToTerseString",
"[Test]",
"aa2c378f56cfd04d6d4cfa50cd3efafd2b2d479d681336d72fbb9d5ec5c363e6",
);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.DisposalHelper_SafeDisposeAndUsing::test 433ebbfeb69eeb7ceaac86c4b3637468152a1f5a9f4c12ea8d7a74e1cb0c4fec pending
#[test]
fn util_unit_tests_disposal_helper_safe_dispose_and_using_d9ec7904c289() {
pending(
"LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.DisposalHelper_SafeDisposeAndUsing::test",
"LibreMetaverse.Tests/UtilUnitTests.cs",
163,
"UtilUnitTests.DisposalHelper_SafeDisposeAndUsing",
"[Test]",
"433ebbfeb69eeb7ceaac86c4b3637468152a1f5a9f4c12ea8d7a74e1cb0c4fec",
);
}
// parity-case: LibreMetaverse.Tests/UtilsConversionsTests.cs::UtilsConversionsTests.StringToBytes::test 0bef42801dc2a50e132b05440424c44da54b53c853708ee2c0ec9799dbe0e8b2 pending
#[test]
fn utils_conversions_tests_string_to_bytes_fdacb435c54d() {
pending(
"LibreMetaverse.Tests/UtilsConversionsTests.cs::UtilsConversionsTests.StringToBytes::test",
"LibreMetaverse.Tests/UtilsConversionsTests.cs",
35,
"UtilsConversionsTests.StringToBytes",
"[Test]",
"0bef42801dc2a50e132b05440424c44da54b53c853708ee2c0ec9799dbe0e8b2",
);
}
// parity-case: LibreMetaverse.Tests/XmlLLSDTests.cs::XmlSDTests.DeserializeLLSDSample::test 2495e7d5c414b59962f03282c51fe1c0d5de350b51c1bdfcee9ced7c32acbe4d pending
#[test]
fn xml_sd_tests_deserialize_llsd_sample_665062bb9667() {

View File

@@ -0,0 +1,584 @@
#![allow(clippy::cast_possible_truncation, clippy::float_cmp)]
use libremetaverse::{
DictionaryEventAction, DisposalHelper, EventSubscription, EventSubscriptionHelper, FileHelper,
Helpers, NameValue, NameValueClassType, NameValueSendtoType, NameValueValueType,
ObservableDictionary, PositionHelper, Repeat, Simulator, threading::OptimisticReaderWriterLock,
};
use libremetaverse_compat_tests::{assert_close, block_on};
use libremetaverse_types::compat::{CancellationToken, Close, ExternalError, Guid, Utf16CodeUnit};
use libremetaverse_types::{Matrix4, Quaternion, UUID, Utils, Vector3, Vector3d};
use std::cell::Cell;
use std::sync::atomic::{AtomicBool, AtomicI32, Ordering};
use std::sync::{Arc, Barrier, Mutex, mpsc};
use std::time::Duration;
fn vector3(x: f32, y: f32, z: f32) -> Vector3 {
Vector3::new_with_single_single_single(x, y, z).expect("Vector3 constructor")
}
fn vector3d(x: f64, y: f64, z: f64) -> Vector3d {
Vector3d::new_with_double_double_double(x, y, z).expect("Vector3d constructor")
}
fn quaternion(x: f32, y: f32, z: f32, w: f32) -> Quaternion {
Quaternion::new_with_single_single_single_single(x, y, z, w).expect("Quaternion constructor")
}
fn matrix(values: [f32; 16]) -> Matrix4 {
Matrix4::new_with_single_single_single_single_single_single_single_single_single_single_single_single_single_single_single_single(
values[0], values[1], values[2], values[3], values[4], values[5], values[6],
values[7], values[8], values[9], values[10], values[11], values[12], values[13],
values[14], values[15],
)
.expect("Matrix4 constructor")
}
fn assert_vector3(actual: &Vector3, expected: [f32; 3]) {
assert_eq!([actual.x, actual.y, actual.z], expected);
}
fn assert_vector3d(actual: &Vector3d, expected: [f64; 3]) {
assert_eq!([actual.x, actual.y, actual.z], expected);
}
fn assert_quaternion(actual: &Quaternion, expected: [f32; 4]) {
assert_eq!([actual.x, actual.y, actual.z, actual.w], expected);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.UUIDs::test 4f95d48c474bbd824254196dd605051773c711614bf661b5aa996054b6c98967 translated
#[test]
fn uuids() {
let zero = UUID::zero();
assert_eq!(zero.get_bytes().expect("UUID bytes"), [0; 16]);
let with_trailing_bytes = vec![
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
0x0f, 0xff, 0xff,
];
let exact_bytes = with_trailing_bytes[..16].to_vec();
let a = UUID::new_with_bytes_int32(with_trailing_bytes, 0).expect("UUID byte constructor");
let b = UUID::new_with_bytes_int32(exact_bytes.clone(), 0).expect("UUID byte constructor");
assert!(a.equals_with_uuid(b));
let text = "00010203-0405-0607-0809-0a0b0c0d0e0f";
let a = UUID::new_with_bytes_int32(exact_bytes, 0).expect("UUID byte constructor");
let b = UUID::new_with_string(text.into()).expect("UUID string constructor");
assert!(a.equals_with_uuid(b));
let a = UUID::new_with_string(text.into()).expect("UUID string constructor");
assert_eq!(a.to_string(), text);
let parsed = UUID::parse(text.into()).expect("UUID parse");
let expected = UUID::new_with_string(text.into()).expect("UUID string constructor");
assert!(parsed.equals_with_uuid(expected));
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.Vector3ApproxEquals::test 1438175bb0c0bd8b17dd878e8fb95fb0dba82abbab71882f2ceb39ec554189d9 translated
#[test]
fn vector3_approx_equals() {
let cases = [
([1.0, 0.0, 0.0], [0.0, 0.0, 0.0], 0.9, false),
([1.0, 0.0, 0.0], [0.0, 0.0, 0.0], 1.0, true),
([-1.0, 0.0, 0.0], [1.0, 0.0, 0.0], 1.9, false),
([-1.0, 0.0, 0.0], [1.0, 0.0, 0.0], 2.0, true),
([0.0, -1.0, 0.0], [0.0, -1.1, 0.0], 0.09, false),
([0.0, -1.0, 0.0], [0.0, -1.1, 0.0], 0.11, true),
(
[0.0, 0.0, 0.0],
[0.0, 0.0, 0.00001],
f32::from_bits(1),
false,
),
([0.0, 0.0, 0.0], [0.0, 0.0, 0.00001], 0.0001, true),
];
for (left, right, tolerance, expected) in cases {
let mut left = vector3(left[0], left[1], left[2]);
let right = vector3(right[0], right[1], right[2]);
assert_eq!(
left.approx_equals(right, tolerance)
.expect("Vector3 ApproxEquals"),
expected
);
}
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.VectorCasting::test 27c0a4b8402ef66f11dca075d8c1a0f0b647ccef9c2803125dde6ca292951cd4 translated
#[test]
fn vector_casting() {
for value in [
1.0,
1.1,
1.01,
1.001,
1.0001,
1.00001,
1.000_001,
1.000_000_1,
1.000_000_01,
] {
let narrowed = value as f32;
let no_precision_loss = value == f64::from(narrowed);
let c = Vector3::new_with_vector3d(vector3d(value, value, value))
.expect("Vector3d to Vector3 cast");
assert_vector3(&c, [narrowed; 3]);
let d = Vector3d::new_with_vector3(vector3(narrowed, narrowed, narrowed))
.expect("Vector3 to Vector3d cast");
if !no_precision_loss {
assert_ne!([d.x, d.y, d.z], [value; 3]);
}
assert_vector3d(&d, [f64::from(narrowed); 3]);
let left = Vector3d::new_with_vector3(vector3(narrowed, narrowed, narrowed))
.expect("implicit Vector3 to Vector3d cast");
let right = vector3d(
f64::from(narrowed),
f64::from(narrowed),
f64::from(narrowed),
);
assert!(Vector3d::eq(left, right));
}
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.Quaternions::test 071cf3ef6932e093c0fd09fe461a738e75af905707fce9a321b8f08dd89c09dd translated
#[test]
fn quaternions() {
let a = quaternion(1.0, 0.0, 0.0, 0.0);
let b = quaternion(1.0, 0.0, 0.0, 0.0);
assert!(Quaternion::eq(a, b));
let result = Quaternion::multiply_with_quaternion_quaternion(
quaternion(1.0, 0.0, 0.0, 0.0),
quaternion(1.0, 0.0, 0.0, 0.0),
)
.expect("Quaternion multiply");
assert_quaternion(&result, [0.0, 0.0, 0.0, -1.0]);
let result = Quaternion::multiply_with_quaternion_quaternion(
quaternion(1.0, 0.0, 0.0, 0.0),
quaternion(0.0, 1.0, 0.0, 0.0),
)
.expect("Quaternion multiply");
assert_quaternion(&result, [0.0, 0.0, 1.0, 0.0]);
let result = Quaternion::multiply_with_quaternion_quaternion(
quaternion(0.0, 0.0, 1.0, 0.0),
quaternion(0.0, 1.0, 0.0, 0.0),
)
.expect("Quaternion multiply");
assert_quaternion(&result, [-1.0, 0.0, 0.0, 0.0]);
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.TestMatrix::test 5d5ccc8b9ea1741b013fd945e42ba7e6511322fdce51998e358d42c1736457e3 translated
#[test]
fn test_matrix() {
let mut singular = matrix([
0.0, 0.0, 74.0, 1.0, 0.0, 435.0, 0.0, 1.0, 345.0, 0.0, 34.0, 1.0, 0.0, 0.0, 0.0, 0.0,
]);
assert_close(
f64::from(singular.determinant().expect("Matrix4 determinant")),
0.0,
0.001,
);
let inverse_identity = Matrix4::inverse(Matrix4::identity()).expect("Matrix4 inverse");
assert!(Matrix4::eq(Matrix4::identity(), inverse_identity));
let input = matrix([
1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
]);
let expected = matrix([
0.0, 1.0, -1.0, 0.0, 1.0, -1.0, 1.0, 0.0, -1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0,
]);
assert!(Matrix4::eq(
Matrix4::inverse(input).expect("Matrix4 inverse"),
expected
));
}
// parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.FloatsToTerseStrings::test ce34cdfe106d5dadfa82056e7aa7690d2da748c7e753b9d2a2ad682d86327def translated
#[test]
fn floats_to_terse_strings() {
for (value, expected) in [(1.20, "1.2"), (24.00, "24"), (-0.59, "-.59"), (0.59, ".59")] {
assert_eq!(
Helpers::float_to_terse_string(value).expect("FloatToTerseString"),
expected
);
}
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.FileHelper_SanitizeAndSafeNames::test 770d1cb751c4b8290c9443bcb4a91d17703628a157cc428c607a7d36ae0af985 translated
#[test]
fn file_helper_sanitize_and_safe_names() {
let safe = FileHelper::safe_file_name("inva:lid/fi*le?.txt".into()).expect("safe file name");
assert!(!safe.is_empty());
assert!(!safe.contains(':'));
assert!(
!FileHelper::safe_dir_name("path|with?bad".into())
.expect("safe directory name")
.contains('|')
);
assert_eq!(
FileHelper::sanitize(
"abcxyz".into(),
vec![Utf16CodeUnit('a' as u16), Utf16CodeUnit('b' as u16)],
Some(Utf16CodeUnit('-' as u16)),
)
.expect("sanitize"),
"--cxyz"
);
let mut first = None;
let mut last = None;
assert!(FileHelper::try_parse_two_names(
"First Last".into(),
&mut first,
&mut last
));
assert_eq!(first.as_deref(), Some("First"));
assert_eq!(last.as_deref(), Some("Last"));
assert!(!FileHelper::try_parse_two_names(
" Too Many Parts Extra".into(),
&mut first,
&mut last
));
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.ObservableDictionary_Events_FireOnAddRemoveAndClear::test 579412c3c839e1fe5b44cf956f8d329a15d4e05c05778b4e6e3ff9b7d2fb7607 translated
#[test]
fn observable_dictionary_events_fire_on_add_remove_and_clear() {
let mut dictionary = ObservableDictionary::<String, i32>::new_with_constructor()
.expect("ObservableDictionary constructor");
let adds = Arc::new(AtomicI32::new(0));
let removes = Arc::new(AtomicI32::new(0));
let changes = Arc::new(AtomicI32::new(0));
let add_count = Arc::clone(&adds);
dictionary
.add_delegate(
DictionaryEventAction::Add,
Arc::new(move |action, _entry| {
if action == DictionaryEventAction::Add {
add_count.fetch_add(1, Ordering::SeqCst);
}
}),
)
.expect("add callback");
let remove_count = Arc::clone(&removes);
dictionary
.add_delegate(
DictionaryEventAction::Remove,
Arc::new(move |action, _entry| {
if action == DictionaryEventAction::Remove {
remove_count.fetch_add(1, Ordering::SeqCst);
}
}),
)
.expect("remove callback");
let change_count = Arc::clone(&changes);
dictionary
.add_delegate(
DictionaryEventAction::Change,
Arc::new(move |action, _entry| {
if action == DictionaryEventAction::Change {
change_count.fetch_add(1, Ordering::SeqCst);
}
}),
)
.expect("change callback");
dictionary
.add("one".into(), Some(1))
.expect("dictionary add");
assert_eq!(adds.load(Ordering::SeqCst), 1);
dictionary.set_item(Some("one".into()), Some(2));
assert!(adds.load(Ordering::SeqCst) >= 1);
assert!(dictionary.remove("one".into()).expect("dictionary remove"));
assert_eq!(removes.load(Ordering::SeqCst), 1);
dictionary.add("a".into(), Some(1)).expect("dictionary add");
dictionary.add("b".into(), Some(2)).expect("dictionary add");
dictionary.clear().expect("dictionary clear");
assert!(removes.load(Ordering::SeqCst) >= 3);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.EventSubscriptionHelper_WaitForEventAndAsync::test bab59e0caf1630edda9a2a6daecca95cd1a28f189fdde01b1b6afee4cd96d8cb translated
#[test]
fn event_subscription_helper_wait_for_event_and_async() {
type UnitHandler = Arc<dyn Fn(Option<()>) + Send + Sync>;
let handler: Arc<Mutex<Option<UnitHandler>>> = Arc::new(Mutex::new(None));
let subscribed_handler = Arc::clone(&handler);
let unsubscribed_handler = Arc::clone(&handler);
let fired_handler = Arc::clone(&handler);
let (subscribed_tx, subscribed_rx) = mpsc::sync_channel(0);
let fire = std::thread::spawn(move || {
if subscribed_rx.recv_timeout(Duration::from_secs(5)).is_ok()
&& let Some(handler) = fired_handler.lock().expect("event handler").as_ref()
{
handler(Some(()));
}
});
let result =
EventSubscriptionHelper::wait_for_event_with_action_action_func_func_int32_t_result::<
(),
i32,
>(
Box::new(move |handler| {
*subscribed_handler.lock().expect("event handler") = Some(handler);
subscribed_tx.send(()).expect("subscription signal");
}),
Box::new(move |_handler| {
*unsubscribed_handler.lock().expect("event handler") = None;
}),
Box::new(|_event| true),
Box::new(|_event| Some(123)),
5_000,
Some(-1),
)
.expect("WaitForEvent");
assert_eq!(result, Some(123));
fire.join().expect("event fire task");
let handler: Arc<Mutex<Option<UnitHandler>>> = Arc::new(Mutex::new(None));
let subscribed_handler = Arc::clone(&handler);
let unsubscribed_handler = Arc::clone(&handler);
let fired_handler = Arc::clone(&handler);
let (subscribed_tx, subscribed_rx) = mpsc::sync_channel(0);
let fire = std::thread::spawn(move || {
if subscribed_rx.recv_timeout(Duration::from_secs(5)).is_ok()
&& let Some(handler) = fired_handler.lock().expect("event handler").as_ref()
{
handler(Some(()));
}
});
let async_result = block_on(
EventSubscriptionHelper::wait_for_event_with_action_action_func_func_int32_cancellation_token_t_result::<(), Guid>(
Box::new(move |handler| {
*subscribed_handler.lock().expect("event handler") = Some(handler);
subscribed_tx.send(()).expect("subscription signal");
}),
Box::new(move |_handler| {
*unsubscribed_handler.lock().expect("event handler") = None;
}),
Box::new(|_event| true),
Box::new(|_event| Some(Guid([0; 16]))),
5_000,
Some(CancellationToken),
Some(Guid([1; 16])),
),
)
.expect("WaitForEventAsync");
assert_eq!(async_result, Some(Guid([0; 16])));
fire.join().expect("async event fire task");
let subscription = EventSubscription::<()>::new(
Box::new(|_handler| {}),
Box::new(|_handler| {}),
Arc::new(|_event| {}),
)
.expect("EventSubscription constructor");
subscription.dispose().expect("EventSubscription dispose");
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.Repeat_Interval_ExecutesAndCancels::test 43250eb6d7799ca3c00e51810b3e04d9a874bfdeafd77af6f7b78f8f6c73ff77 translated
#[test]
fn repeat_interval_executes_and_cancels() {
let count = Arc::new(AtomicI32::new(0));
let action_count = Arc::clone(&count);
block_on(
Repeat::interval_with_time_span_action_cancellation_token_boolean(
Duration::from_millis(50),
Box::new(move || {
action_count.fetch_add(1, Ordering::SeqCst);
}),
CancellationToken,
Some(true),
),
)
.expect("Repeat interval");
assert!(count.load(Ordering::SeqCst) >= 1);
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.NameValue_ParseAndToString::test f779a81d286c0028ea202bab00f8db0d1bbaea611003458918a9ec9a24207557 translated
#[test]
fn name_value_parse_and_to_string() {
let parsed =
NameValue::new_with_string("greeting STRING R S Hello".into()).expect("NameValue parse");
assert_eq!(parsed.name, "greeting");
assert_eq!(parsed.type_, NameValueValueType::String);
assert_eq!(parsed.class_, NameValueClassType::ReadOnly);
assert_eq!(parsed.sendto, NameValueSendtoType::Sim);
let rendered = NameValue::name_values_to_string(vec![parsed]).expect("NameValue render");
assert!(rendered.contains("Hello"));
let value = NameValue::new_with_string("n1 STRING R S v1".into()).expect("NameValue parse");
let rendered = NameValue::name_values_to_string(vec![value]).expect("NameValue render");
assert!(rendered.contains("n1") && rendered.contains("v1"));
}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.Helpers_SplitAndFloatToTerseString::test aa2c378f56cfd04d6d4cfa50cd3efafd2b2d479d681336d72fbb9d5ec5c363e6 translated
#[test]
fn helpers_split_and_float_to_terse_string() {
let chunks: Vec<_> = Helpers::split_by("abcdef".into(), 2)
.expect("SplitBy")
.collect();
assert_eq!(chunks, ["ab", "cd", "ef"]);
assert_eq!(
Helpers::float_to_terse_string(0.0).expect("FloatToTerseString"),
".00"
);
assert!(
Helpers::float_to_terse_string(1.2300)
.expect("FloatToTerseString")
.contains("1.23")
);
}
struct ThrowOnDrop(Arc<AtomicBool>);
impl Close for ThrowOnDrop {}
impl Drop for ThrowOnDrop {
fn drop(&mut self) {
self.0.store(true, Ordering::SeqCst);
}
}
struct DisposableFlag(Cell<i32>);
impl Close for DisposableFlag {}
// parity-case: LibreMetaverse.Tests/UtilUnitTests.cs::UtilUnitTests.DisposalHelper_SafeDisposeAndUsing::test 433ebbfeb69eeb7ceaac86c4b3637468152a1f5a9f4c12ea8d7a74e1cb0c4fec translated
#[test]
fn disposal_helper_safe_dispose_and_using() {
let disposed = Arc::new(AtomicBool::new(false));
let logged = Arc::new(Mutex::new(None));
let logger_result = Arc::clone(&logged);
DisposalHelper::safe_dispose(
Box::new(ThrowOnDrop(Arc::clone(&disposed))),
Some("test".into()),
Some(Box::new(
move |message: String, _error: Option<ExternalError>| {
*logger_result.lock().expect("logger state") = Some(message);
},
)),
)
.expect("SafeDispose");
assert!(disposed.load(Ordering::SeqCst));
assert!(logged.lock().expect("logger state").is_some());
let result = DisposalHelper::using_with_func_func_3fbb9598(
Box::new(|| DisposableFlag(Cell::new(0))),
Box::new(|value| {
value.0.set(5);
Some(value.0.get())
}),
)
.expect("Using");
assert_eq!(result, Some(5));
}
// parity-case: LibreMetaverse.Tests/PositionHelperTests.cs::PositionHelperTests.ToGlobalAndLocalPosition_RoundTrip::test 695c6a640e5353e02def9a1b4a1c1eabb37a8543c13466dff570f58d847e7772 translated
#[test]
fn to_global_and_local_position_round_trip() {
let global_x = 512 * Simulator::DEFAULT_REGION_SIZE_X;
let global_y = 1024 * Simulator::DEFAULT_REGION_SIZE_Y;
let handle = Utils::u_ints_to_long(global_x, global_y).expect("region handle");
let local = vector3(10.5, 20.25, 5.0);
let global = PositionHelper::to_global_position(handle, local).expect("global position");
assert_close(global.x, f64::from(global_x) + 10.5, 0.0001);
assert_close(global.y, f64::from(global_y) + 20.25, 0.0001);
assert_close(global.z, 5.0, 0.0001);
let local = PositionHelper::to_local_position(handle, global).expect("local position");
assert_close(f64::from(local.x), 10.5, 0.0001);
assert_close(f64::from(local.y), 20.25, 0.0001);
assert_close(f64::from(local.z), 5.0, 0.0001);
}
// parity-case: LibreMetaverse.Tests/PositionHelperTests.cs::PositionHelperTests.FormatCoordinates_FormatsCorrectly::test fe4256d00dab5cc2de602b7b27442cac627a5956c4ce79c05d92de830f6fc5d2 translated
#[test]
fn format_coordinates_formats_correctly() {
for (coordinates, expected) in [
((None, None, None), ""),
((Some(Some(10)), None, None), " (10)"),
((Some(Some(10)), Some(Some(20)), None), " (10,20)"),
(
(Some(Some(10)), Some(Some(20)), Some(Some(30))),
" (10,20,30)",
),
] {
assert_eq!(
PositionHelper::format_coordinates(coordinates.0, coordinates.1, coordinates.2)
.expect("FormatCoordinates"),
expected
);
}
}
// parity-case: LibreMetaverse.Tests/ReaderWriterLockTests.cs::ReaderWriterLockTests.MultipleReadersOneWriter_ReaderConcurrencyAndWriterExclusion::test bf63804480951667455038244228f77c30454a365b496f062051f7b34e7b2618 translated
#[test]
fn multiple_readers_one_writer_reader_concurrency_and_writer_exclusion() {
const READERS: usize = 5;
let lock = Arc::new(OptimisticReaderWriterLock::new().expect("reader/writer lock constructor"));
let start = Arc::new(Barrier::new(READERS + 1));
let release = Arc::new(Barrier::new(READERS + 1));
let current = Arc::new(AtomicI32::new(0));
let maximum = Arc::new(AtomicI32::new(0));
let (entered_tx, entered_rx) = mpsc::channel();
let mut readers = Vec::new();
for _ in 0..READERS {
let lock = Arc::clone(&lock);
let start = Arc::clone(&start);
let release = Arc::clone(&release);
let current = Arc::clone(&current);
let maximum = Arc::clone(&maximum);
let entered = entered_tx.clone();
readers.push(std::thread::spawn(move || {
start.wait();
let _guard = lock.read_lock().expect("read lock");
let active = current.fetch_add(1, Ordering::SeqCst) + 1;
maximum.fetch_max(active, Ordering::SeqCst);
entered.send(()).expect("reader entered signal");
release.wait();
std::thread::sleep(Duration::from_millis(20));
current.fetch_sub(1, Ordering::SeqCst);
}));
}
start.wait();
for _ in 0..READERS {
entered_rx
.recv_timeout(Duration::from_secs(30))
.expect("all readers should enter within 30 seconds");
}
let (writer_tx, writer_rx) = mpsc::channel();
let writer_lock = Arc::clone(&lock);
let writer = std::thread::spawn(move || {
let _guard = writer_lock.write_lock().expect("write lock");
writer_tx.send(()).expect("writer acquired signal");
});
assert!(writer_rx.recv_timeout(Duration::from_millis(100)).is_err());
release.wait();
writer_rx
.recv_timeout(Duration::from_secs(30))
.expect("writer should acquire after readers exit");
assert!(maximum.load(Ordering::SeqCst) >= 2);
for reader in readers {
reader.join().expect("reader task");
}
writer.join().expect("writer task");
}
// parity-case: LibreMetaverse.Tests/UtilsConversionsTests.cs::UtilsConversionsTests.StringToBytes::test 0bef42801dc2a50e132b05440424c44da54b53c853708ee2c0ec9799dbe0e8b2 translated
#[test]
fn string_to_bytes() {
let text = "Your squirrel, your imagination";
let bytes = Utils::string_to_bytes(text.into()).expect("StringToBytes");
assert_eq!(
Utils::bytes_to_string_with_bytes(bytes).expect("BytesToString"),
text
);
}

View File

@@ -5,9 +5,10 @@ use libremetaverse::{
TerrainManager, TerrainPatch,
};
use libremetaverse_types::UUID;
use libremetaverse_types::compat::{
CancellationToken, EventHandler, IAsyncEnumerable, Subscription,
};
use libremetaverse_types::compat::{CancellationToken, IAsyncEnumerable, Subscription};
use std::sync::Arc;
type EventHandler<T> = Arc<dyn Fn(T) + Send + Sync>;
fn member_id<T>(result: Result<T, libremetaverse::Error>) -> &'static str {
result

File diff suppressed because it is too large Load Diff

View File

@@ -170,6 +170,12 @@ SUPPORT_TYPES = {
MEMBER_RETURN_OVERRIDES = {
"M:LibreMetaverse.Caps.Capabilities": "Vec<String>",
}
TYPE_USAGE_OVERRIDES = {
"LibreMetaverse.DictionaryChangeCallback": (
"std::sync::Arc<dyn Fn(libremetaverse::DictionaryEventAction, "
"libremetaverse_types::compat::DictionaryEntry) + Send + Sync>"
),
}
TYPE_NAME_OVERRIDES = {
"T:LibreMetaverse.LslTools.Error": "LslError",
}
@@ -337,7 +343,7 @@ def external_type_target(item: dict) -> tuple[str, str, str, str]:
output = arguments[-1] if arguments else "()"
return "core", "callback", f"Box<dyn Fn({', '.join(arguments[:-1])}) -> {output} + Send + Sync>", "language"
if base == "System.EventHandler":
return "libremetaverse-types", "compat", f"libremetaverse_types::compat::EventHandler<{arguments[-1] if arguments else '()'}>", "native_cross_platform_replacement"
return "std", "sync", f"std::sync::Arc<dyn Fn({arguments[-1] if arguments else '()'}) + Send + Sync>", "stdlib_or_adopted_crate"
if base in {"System.Tuple", "System.ValueTuple"}:
return "core", "tuple", "(" + ", ".join(arguments) + ("," if len(arguments) == 1 else "") + ")", "language"
if base == "System.Nullable" and arguments:
@@ -502,7 +508,7 @@ class Mapper:
parameters = ", ".join(mapped_arguments[:-1])
target = f"Box<dyn Fn({parameters}) -> {output} + Send + Sync>"
elif base == "System.EventHandler":
target = f"libremetaverse_types::compat::EventHandler<{mapped_arguments[-1] if mapped_arguments else '()'}>"
target = f"std::sync::Arc<dyn Fn({mapped_arguments[-1] if mapped_arguments else '()'}) + Send + Sync>"
elif base in {"System.Tuple", "System.ValueTuple"}:
target = "(" + ", ".join(mapped_arguments) + ("," if len(mapped_arguments) == 1 else "") + ")"
elif base == "System.Nullable" and mapped_arguments:
@@ -514,7 +520,7 @@ class Mapper:
if base in generics or ("." not in base and base.startswith("T")):
target = base
elif target is None:
target = self.resolved.get(base)
target = TYPE_USAGE_OVERRIDES.get(base, self.resolved.get(base))
if target is None:
raise ValueError(f"unresolved referenced type: {value} (base {base})")
if mapped_arguments and base not in {

View File

@@ -70,7 +70,7 @@ PARITY_MARKER_RE = re.compile(
re.MULTILINE,
)
RUST_TEST_RE = re.compile(r"(?:#\[[^\]]+\]\s*)*fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(", re.MULTILINE)
EXPECTED_TESTS = 1295
EXPECTED_TESTS = 1289
PARITY_FILES = (
Path("tests/compat/tests/generated_parity.rs"),
Path("tests/PARITY.md"),
@@ -106,6 +106,50 @@ def source_files(root: Path) -> list[Path]:
return sorted(p for p in root.rglob("*.cs") if "obj" not in p.parts and "bin" not in p.parts)
def mask_csharp_comments(text: str) -> str:
"""Blank comments without shifting source offsets or touching string literals."""
masked = list(text)
index = 0
state = "code"
while index < len(text):
char = text[index]
following = text[index + 1] if index + 1 < len(text) else ""
if state == "code":
if char == '"':
state = "string"
elif char == "'":
state = "char"
elif char == "/" and following == "/":
masked[index] = masked[index + 1] = " "
index += 1
state = "line_comment"
elif char == "/" and following == "*":
masked[index] = masked[index + 1] = " "
index += 1
state = "block_comment"
elif state == "string":
if char == '"' and following == '"':
index += 1
elif char == '"' and (index == 0 or text[index - 1] != "\\"):
state = "code"
elif state == "char":
if char == "'" and (index == 0 or text[index - 1] != "\\"):
state = "code"
elif state == "line_comment":
if char in "\r\n":
state = "code"
else:
masked[index] = " "
elif char == "*" and following == "/":
masked[index] = masked[index + 1] = " "
index += 1
state = "code"
elif char not in "\r\n":
masked[index] = " "
index += 1
return "".join(masked)
def namespace_at(text: str, position: int) -> str:
matches = [m for m in NAMESPACE_RE.finditer(text) if m.start() <= position]
return matches[-1].group(1) if matches else ""
@@ -278,10 +322,11 @@ def helper_types(roots: tuple[Path, ...], upstream: Path) -> dict[str, str]:
for root in roots:
for path in source_files(root):
text = path.read_text(encoding="utf-8-sig")
if TEST_ATTR_RE.search(text):
searchable = mask_csharp_comments(text)
if TEST_ATTR_RE.search(searchable):
continue
relative = path.relative_to(upstream).as_posix()
for match in CLASS_RE.finditer(text):
for match in CLASS_RE.finditer(searchable):
helpers.setdefault(match.group(1), relative)
return helpers
@@ -293,29 +338,33 @@ def extract_tests(upstream: Path) -> list[dict[str, object]]:
for root in roots:
for path in source_files(root):
text = path.read_text(encoding="utf-8-sig")
searchable = mask_csharp_comments(text)
relative = path.relative_to(upstream).as_posix()
dependencies = sorted(
helper_path
for helper, helper_path in helpers.items()
if helper_path != relative and re.search(rf"\b{re.escape(helper)}\b", text)
if helper_path != relative and re.search(rf"\b{re.escape(helper)}\b", searchable)
)
attrs = list(TEST_ATTR_RE.finditer(text))
attrs = list(TEST_ATTR_RE.finditer(searchable))
for attr_index, attr in enumerate(attrs):
next_attr = attrs[attr_index + 1].start() if attr_index + 1 < len(attrs) else len(text)
method = METHOD_RE.search(text, attr.end(), next_attr + 1200)
next_attr = attrs[attr_index + 1].start() if attr_index + 1 < len(attrs) else len(searchable)
method = METHOD_RE.search(searchable, attr.end(), next_attr + 1200)
if method is None:
method = METHOD_RE.search(text, attr.end())
method = METHOD_RE.search(searchable, attr.end())
if method is None:
raise RuntimeError(f"No test method after {relative}:{text.count(chr(10), 0, attr.start()) + 1}")
attribute_block = searchable[searchable.rfind("}", 0, method.start()) + 1 : method.start()]
if attr.group(1) == "Test" and "[TestCase" in attribute_block:
continue
name = method.group(1)
class_match = enclosing_class_match(text, method.start())
class_match = enclosing_class_match(searchable, method.start())
fixture = class_match.group(1) if class_match else "UnknownFixture"
attr_text = " ".join(attr.group(0).split())
parameters = " ".join((attr.group(2) or "").split()) or None
line = text.count("\n", 0, attr.start()) + 1
category_text = text[attr.start() : method.start()]
category_text = searchable[attr.start() : method.start()]
if class_match:
category_text += attributes_before(text, class_match.start())
category_text += attributes_before(searchable, class_match.start())
categories = sorted(set(CATEGORY_RE.findall(category_text)))
tests.append(
{

View File

@@ -4,10 +4,37 @@ import unittest
from pathlib import Path
from unittest.mock import patch
from generate_surface import check_test_parity, extract_tests, generate_tests
from generate_surface import check_test_parity, extract_tests, generate_tests, mask_csharp_comments
class ParityGenerationTests(unittest.TestCase):
def test_comment_masking_preserves_offsets_and_ignores_fake_tests(self) -> None:
source = '''var url = "https://example.com/[Test]"; // [Test]\n/* [TestCase(1)] */\n[Test]\n'''
masked = mask_csharp_comments(source)
self.assertEqual(len(masked), len(source))
self.assertEqual(masked.count("\n"), source.count("\n"))
self.assertIn('"https://example.com/[Test]"', masked)
self.assertEqual(masked.count("[Test]"), 2)
with tempfile.TemporaryDirectory() as temporary:
upstream = Path(temporary)
tests = upstream / "LibreMetaverse.Tests"
tests.mkdir()
(upstream / "LibreMetaverse.Rendering.Tests").mkdir()
(tests / "Comments.cs").write_text(
"""public class Comments
{
// [Test]
// public void CommentedOut() {}
[Test]
[TestCase(1)]
[TestCase(2)]
public void Cases(int value) {}
}
"""
)
self.assertEqual([case["parameter_case"] for case in extract_tests(upstream)], ["1", "2"])
def test_reviewed_rust_test_is_preserved_and_excluded_from_placeholders(self) -> None:
with tempfile.TemporaryDirectory() as temporary:
root = Path(temporary)