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 host, bind to, invoke, or ship the .NET implementation. The current
stage is a compiling structural shell: crate boundaries mirror the .NET library stage is a compiling structural shell: crate boundaries mirror the .NET library
projects, public C# type names have Rust declarations, every upstream NUnit case 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 target. Types, StructuredData, Imaging, PrimMesher, both rendering adapters, and
the main assembly's packet/message/asset/primitive wire-data, core the main assembly's packet/message/asset/primitive wire-data, core
runtime/networking, avatar-facing manager, world/social/service manager, RLV, runtime/networking, avatar-facing manager, world/social/service manager, RLV,
LSL tools, Utilities, Vivox, and WebRTC slices now have complete callable, LSL tools, Utilities, Vivox, and WebRTC slices now have complete callable,
failure-only signatures. The independent downstream fixture compiles every failure-only signatures. The independent downstream fixture compiles every
cataloged type and member with zero exclusions; semantic Rust test translations cataloged type and member with zero exclusions. Semantic Rust test translation
are the next stage. is underway, with the first 17 Types/Utilities cases reviewed.
The source snapshot, compatibility rules, dependency research, and ordered The source snapshot, compatibility rules, dependency research, and ordered
implementation plan are in [RUSTREWRITE.md](RUSTREWRITE.md). 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. types, plus two support traits referenced by public inheritance metadata.
- `api/RUST-MAPPING.tsv` records the reviewed Rust destination and complete - `api/RUST-MAPPING.tsv` records the reviewed Rust destination and complete
signature decision for all 30,789 public members. 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. 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 - `programs/upstream-programs.json` records every source file and digest for the
nine sample/tool projects. nine sample/tool projects.
Run `python3 tools/generate_surface.py` after deliberately changing the pinned Run `python3 tools/generate_surface.py` after deliberately changing the pinned
upstream snapshot, then run `python3 tools/extract_public_api.py` to rebuild the upstream snapshot, then run `python3 tools/extract_public_api.py` to rebuild the
authoritative metadata catalog twice and require byte-identical output. 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 source generator rejects a test count other than 1,289 so upstream drift cannot
silently remove tests. Update both commit constants and review all ledger diffs silently remove tests. The extractor masks C# comments and treats `[Test]` plus
in the same change. `[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 ### 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 slices expose all 3,066 final Rust-facing types and all 30,789 callable
members with real fields/constants/enum values and standardized failing members with real fields/constants/enum values and standardized failing
bodies; bodies;
- all 1,295 NUnit `[Test]`/`[TestCase]` invocations have compiling Rust test - all 1,289 discovered NUnit `[Test]`/`[TestCase]` cases have compiling Rust test
entries that intentionally panic with their source identity and body hash; 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; - all nine sample/tool projects have compiling Rust binary targets;
- the 128 TestClient command source files are retained as a command inventory. - 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 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 parse multiline signatures. Likewise, a generated `pending` test is a parity
placeholder, not a semantic translation. **The full public API signature shim 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 The avatar-facing slice preserves the C# agent, movement/camera, appearance and
outfit-policy, inventory/AIS/store, asset/cache, avatar, and animesh concepts. 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 ### 3.2 Full semantic test-suite gate
After the full signature shim compiles, translate the entire C# test suite while 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, invocations must become a Rust test with the same inputs, setup, operation,
observations, assertions, tolerances and expected error/event behavior. Shared observations, assertions, tolerances and expected error/event behavior. Shared
C# test helpers become shared Rust test helpers; embedded fixtures and literal 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 markers in hand-written Rust files, so regeneration writes only unresolved
placeholders and fails on body drift. The checked-in audit reports pending, placeholders and fails on body drift. The checked-in audit reports pending,
translated, ignored-live, benchmark, drifted, missing, duplicate, stale, and 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. The Rust tests must call the public APIs rather than internal replacements.
Where the C# tests call internal members through friend-assembly access, record 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 map 100% of public members to reviewed Rust signatures, and implement only
standardized failing bodies. All signatures and downstream compile fixtures standardized failing bodies. All signatures and downstream compile fixtures
build before test translation begins. 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 exact reviewed Rust equivalents using the public shim. The entire suite
compiles and fails only at standardized unimplemented member boundaries. compiles and fails only at standardized unimplemented member boundaries.
4. **Types implementation:** UUID, math, enums, conversions, collections, 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 | | Decision | Types |
|---|---:| |---|---:|
| `language` | 25 | | `language` | 25 |
| `native_cross_platform_replacement` | 64 | | `native_cross_platform_replacement` | 62 |
| `stdlib_or_adopted_crate` | 53 | | `stdlib_or_adopted_crate` | 55 |
## Schema decisions exercised ## 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 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: libremetaverse_types::compat::EventHandler<()>) -> 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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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.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.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.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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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<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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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: 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: 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: 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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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: 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: 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: 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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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.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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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: 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.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<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.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: 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.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: 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.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: 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.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: 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.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: 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.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.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.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.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<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.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<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.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<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.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<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<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<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.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.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.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.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.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.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.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.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<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.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<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.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<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.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<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.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<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.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<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.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<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.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<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.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<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.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<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.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<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.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<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.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<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.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<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.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.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.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.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.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 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.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.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.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.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<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<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<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<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.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.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 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.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.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.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.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(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.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(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.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(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.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.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.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 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.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.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.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}) 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: 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},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.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) 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 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.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.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.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.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.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 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 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.#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.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.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.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 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.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.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.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.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.#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.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.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: 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.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.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.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 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.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.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.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 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 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`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.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`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 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( pub fn subscribe_restriction_updated(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_rlv::event_arguments::RestrictionUpdatedEventArgs, dyn Fn(libremetaverse_rlv::event_arguments::RestrictionUpdatedEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {

View File

@@ -152,8 +152,8 @@ impl VoiceGateway {
pub fn subscribe_on_account_login_response( pub fn subscribe_on_account_login_response(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayVoiceAccountEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceAccountEventArgs) + Send + Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -165,8 +165,10 @@ impl VoiceGateway {
pub fn subscribe_on_account_login_state_change_event( pub fn subscribe_on_account_login_state_change_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayAccountLoginStateChangeEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayAccountLoginStateChangeEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -178,8 +180,10 @@ impl VoiceGateway {
pub fn subscribe_on_aux_audio_properties_event( pub fn subscribe_on_aux_audio_properties_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayAudioPropertiesEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayAudioPropertiesEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -191,8 +195,8 @@ impl VoiceGateway {
pub fn subscribe_on_aux_get_capture_devices_response( pub fn subscribe_on_aux_get_capture_devices_response(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs) + Send + Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -204,8 +208,8 @@ impl VoiceGateway {
pub fn subscribe_on_aux_get_render_devices_response( pub fn subscribe_on_aux_get_render_devices_response(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs) + Send + Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -217,8 +221,10 @@ impl VoiceGateway {
pub fn subscribe_on_connector_create_response( pub fn subscribe_on_connector_create_response(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayVoiceConnectorEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceConnectorEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -284,8 +290,8 @@ impl VoiceGateway {
pub fn subscribe_on_session_added_event( pub fn subscribe_on_session_added_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewaySessionAddedEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionAddedEventArgs) + Send + Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -296,7 +302,7 @@ impl VoiceGateway {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate`. /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate`.
pub fn subscribe_on_session_create( pub fn subscribe_on_session_create(
&self, &self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!( libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate" "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate"
@@ -306,8 +312,8 @@ impl VoiceGateway {
pub fn subscribe_on_session_create_response( pub fn subscribe_on_session_create_response(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayVoiceSessionEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceSessionEventArgs) + Send + Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -319,8 +325,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_group_added_event( pub fn subscribe_on_session_group_added_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewaySessionGroupAddedEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionGroupAddedEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -332,8 +340,8 @@ impl VoiceGateway {
pub fn subscribe_on_session_media_event( pub fn subscribe_on_session_media_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewaySessionMediaEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionMediaEventArgs) + Send + Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -345,8 +353,8 @@ impl VoiceGateway {
pub fn subscribe_on_session_new_event( pub fn subscribe_on_session_new_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayNewSessionEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayNewSessionEventArgs) + Send + Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -358,8 +366,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_added_event( pub fn subscribe_on_session_participant_added_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayParticipantAddedEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantAddedEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -371,8 +381,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_properties_event( pub fn subscribe_on_session_participant_properties_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayParticipantPropertiesEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantPropertiesEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -384,8 +396,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_removed_event( pub fn subscribe_on_session_participant_removed_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayParticipantRemovedEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantRemovedEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -397,8 +411,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_state_change_event( pub fn subscribe_on_session_participant_state_change_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayParticipantStateChangeEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantStateChangeEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -410,8 +426,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_participant_updated_event( pub fn subscribe_on_session_participant_updated_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayParticipantUpdatedEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayParticipantUpdatedEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -422,7 +440,7 @@ impl VoiceGateway {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove`. /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove`.
pub fn subscribe_on_session_remove( pub fn subscribe_on_session_remove(
&self, &self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!( libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove" "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove"
@@ -432,8 +450,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_removed_event( pub fn subscribe_on_session_removed_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewaySessionRemovedEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionRemovedEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -445,8 +465,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_state_change_event( pub fn subscribe_on_session_state_change_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewaySessionStateChangeEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionStateChangeEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -458,8 +480,10 @@ impl VoiceGateway {
pub fn subscribe_on_session_updated_event( pub fn subscribe_on_session_updated_event(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewaySessionUpdatedEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewaySessionUpdatedEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -489,8 +513,10 @@ impl VoiceGateway {
pub fn subscribe_on_voice_response( pub fn subscribe_on_voice_response(
&self, &self,
handler: Option< handler: Option<
libremetaverse_types::compat::EventHandler< std::sync::Arc<
libremetaverse_voice_vivox::VoiceGatewayVoiceResponseEventArgs, dyn Fn(libremetaverse_voice_vivox::VoiceGatewayVoiceResponseEventArgs)
+ Send
+ Sync,
>, >,
>, >,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
@@ -3325,7 +3351,7 @@ impl VoiceSession {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded`. /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded`.
pub fn subscribe_on_participant_added( pub fn subscribe_on_participant_added(
&self, &self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!( libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded" "E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded"
@@ -3334,7 +3360,7 @@ impl VoiceSession {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved`. /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved`.
pub fn subscribe_on_participant_removed( pub fn subscribe_on_participant_removed(
&self, &self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!( libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved" "E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved"
@@ -3343,7 +3369,7 @@ impl VoiceSession {
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate`. /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate`.
pub fn subscribe_on_participant_update( pub fn subscribe_on_participant_update(
&self, &self,
handler: Option<libremetaverse_types::compat::EventHandler<()>>, handler: Option<std::sync::Arc<dyn Fn(()) + Send + Sync>>,
) -> libremetaverse_types::compat::Subscription { ) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!( libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate" "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. //! Shared deterministic fixtures used by translated compatibility tests.
use std::collections::BTreeMap; use std::collections::BTreeMap;
use std::future::Future;
use std::io; use std::io;
use std::path::{Component, Path, PathBuf}; use std::path::{Component, Path, PathBuf};
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use std::task::{Context, Poll, Wake, Waker};
use std::time::Duration; use std::time::Duration;
/// Fails a not-yet-translated upstream test while retaining parity metadata. /// 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. /// Asserts equality within the exact absolute tolerance carried by an upstream test.
/// ///
/// # Panics /// # Panics
@@ -250,6 +273,7 @@ mod tests {
#[test] #[test]
fn deterministic_harness_covers_clock_network_and_bytes() { 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_close(1.001, 1.0, 0.01);
assert_bytes_eq(&decode_hex("00 ff 2A").unwrap(), &[0, 255, 42]); assert_bytes_eq(&decode_hex("00 ff 2A").unwrap(), &[0, 255, 42]);
assert!(decode_hex("é").is_err()); assert!(decode_hex("é").is_err());

View File

@@ -5,8 +5,11 @@ use libremetaverse::{
ChatEventArgs, ChatType, InventoryException, InventoryItem, InventoryManager, ChatEventArgs, ChatType, InventoryException, InventoryItem, InventoryManager,
TeleportEventArgs, TeleportEventArgs,
}; };
use libremetaverse_types::compat::{CancellationToken, EventHandler, Subscription}; use libremetaverse_types::compat::{CancellationToken, Subscription};
use libremetaverse_types::{AssetType, AttachmentPoint, UUID}; 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 { fn member_id<T>(result: Result<T, libremetaverse::Error>) -> &'static str {
result result

View File

@@ -5,7 +5,10 @@ use libremetaverse::{
NetworkManagerDisconnectType, Settings, TexturePipeline, TexturePipelineSettings, NetworkManagerDisconnectType, Settings, TexturePipeline, TexturePipelineSettings,
UDPPacketBuffer, 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 { fn member_id<T>(result: Result<T, libremetaverse::Error>) -> &'static str {
result 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 // parity-case: LibreMetaverse.Tests/ExperienceListAndRegionMessageTests.cs::ExperienceListAndRegionMessageTests.ExperienceListMessage_Deserialize_ReadsExperienceIdsKey::test aa1f7d09f6c79118ea2e60621d57bd63632085ce81bc979e42294aca53d4f0d9 pending
#[test] #[test]
fn experience_list_and_region_message_tests_experience_list_message_6df527312dbb() { 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 // parity-case: LibreMetaverse.Tests/NetworkTests.cs::NetworkTests.CapsQueue::test cd5af4e7d69df3e938540711877d167fe28efb9af8af7518a62b8f406e46cc18 pending
#[test] #[test]
fn network_tests_caps_queue_bbde71137aba() { 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 // parity-case: LibreMetaverse.Tests/PrimObjectTests.cs::PrimObjectTests.PathBegin::test 5c8e14e1d08a91a4e7c3e252c932b8fe15cf6b5231cc9fe5bb7ef2ae6e2c8299 pending
#[test] #[test]
fn prim_object_tests_path_begin_612754fad0a1() { 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 // parity-case: LibreMetaverse.Tests/PrimObjectTests.cs::PrimObjectTests.PathTaper::test 93a0adbc0630de3c9fbea6f8080d74ef6e3180e3813f00460bce5d52ef2f12b7 pending
#[test] #[test]
fn prim_object_tests_path_taper_3c824190973b() { 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 // parity-case: LibreMetaverse.Tests/RegionScheduleTests.cs::RegionScheduleTests.GetRegionRestartScheduleAsync_WeeklySchedule_ParsesDaysAndTime::test 0f64aab66c6a6d807b3d2bbc46b636a85900e4f76e35d5e3dd8cd0d8b295618b pending
#[test] #[test]
fn region_schedule_tests_get_region_restart_schedule_async_weekly_s_6053e03675af() { 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 // parity-case: LibreMetaverse.Tests/TextureEntryTests.cs::TextureEntryTests.RoundTrip_HighFace_TextureID_IsPreserved::case:d3ad6116f2458248 5f215cd1c50fa8871967653b4667f848c14ff24a3b71906e51aac13c56de1f55 pending
#[test] #[test]
fn texture_entry_tests_round_trip_high_face_texture_id_is_preserved_c347d30187c6() { 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 // parity-case: LibreMetaverse.Tests/TypeTests.cs::TypeTests.BitUnpacking::test 741470d770a0a71853d84e26abaf927fc7dc385dedf0d7de87f63e7a22cb4dd7 pending
#[test] #[test]
fn type_tests_bit_unpacking_9f7b6fc4c72c() { 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 // parity-case: LibreMetaverse.Tests/XmlLLSDTests.cs::XmlSDTests.DeserializeLLSDSample::test 2495e7d5c414b59962f03282c51fe1c0d5de350b51c1bdfcee9ced7c32acbe4d pending
#[test] #[test]
fn xml_sd_tests_deserialize_llsd_sample_665062bb9667() { 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, TerrainManager, TerrainPatch,
}; };
use libremetaverse_types::UUID; use libremetaverse_types::UUID;
use libremetaverse_types::compat::{ use libremetaverse_types::compat::{CancellationToken, IAsyncEnumerable, Subscription};
CancellationToken, EventHandler, 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 { fn member_id<T>(result: Result<T, libremetaverse::Error>) -> &'static str {
result result

File diff suppressed because it is too large Load Diff

View File

@@ -170,6 +170,12 @@ SUPPORT_TYPES = {
MEMBER_RETURN_OVERRIDES = { MEMBER_RETURN_OVERRIDES = {
"M:LibreMetaverse.Caps.Capabilities": "Vec<String>", "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 = { TYPE_NAME_OVERRIDES = {
"T:LibreMetaverse.LslTools.Error": "LslError", "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 "()" output = arguments[-1] if arguments else "()"
return "core", "callback", f"Box<dyn Fn({', '.join(arguments[:-1])}) -> {output} + Send + Sync>", "language" return "core", "callback", f"Box<dyn Fn({', '.join(arguments[:-1])}) -> {output} + Send + Sync>", "language"
if base == "System.EventHandler": 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"}: if base in {"System.Tuple", "System.ValueTuple"}:
return "core", "tuple", "(" + ", ".join(arguments) + ("," if len(arguments) == 1 else "") + ")", "language" return "core", "tuple", "(" + ", ".join(arguments) + ("," if len(arguments) == 1 else "") + ")", "language"
if base == "System.Nullable" and arguments: if base == "System.Nullable" and arguments:
@@ -502,7 +508,7 @@ class Mapper:
parameters = ", ".join(mapped_arguments[:-1]) parameters = ", ".join(mapped_arguments[:-1])
target = f"Box<dyn Fn({parameters}) -> {output} + Send + Sync>" target = f"Box<dyn Fn({parameters}) -> {output} + Send + Sync>"
elif base == "System.EventHandler": 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"}: elif base in {"System.Tuple", "System.ValueTuple"}:
target = "(" + ", ".join(mapped_arguments) + ("," if len(mapped_arguments) == 1 else "") + ")" target = "(" + ", ".join(mapped_arguments) + ("," if len(mapped_arguments) == 1 else "") + ")"
elif base == "System.Nullable" and mapped_arguments: 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")): if base in generics or ("." not in base and base.startswith("T")):
target = base target = base
elif target is None: elif target is None:
target = self.resolved.get(base) target = TYPE_USAGE_OVERRIDES.get(base, self.resolved.get(base))
if target is None: if target is None:
raise ValueError(f"unresolved referenced type: {value} (base {base})") raise ValueError(f"unresolved referenced type: {value} (base {base})")
if mapped_arguments and base not in { if mapped_arguments and base not in {

View File

@@ -70,7 +70,7 @@ PARITY_MARKER_RE = re.compile(
re.MULTILINE, re.MULTILINE,
) )
RUST_TEST_RE = re.compile(r"(?:#\[[^\]]+\]\s*)*fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(", 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 = ( PARITY_FILES = (
Path("tests/compat/tests/generated_parity.rs"), Path("tests/compat/tests/generated_parity.rs"),
Path("tests/PARITY.md"), 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) 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: def namespace_at(text: str, position: int) -> str:
matches = [m for m in NAMESPACE_RE.finditer(text) if m.start() <= position] matches = [m for m in NAMESPACE_RE.finditer(text) if m.start() <= position]
return matches[-1].group(1) if matches else "" 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 root in roots:
for path in source_files(root): for path in source_files(root):
text = path.read_text(encoding="utf-8-sig") 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 continue
relative = path.relative_to(upstream).as_posix() 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) helpers.setdefault(match.group(1), relative)
return helpers return helpers
@@ -293,29 +338,33 @@ def extract_tests(upstream: Path) -> list[dict[str, object]]:
for root in roots: for root in roots:
for path in source_files(root): for path in source_files(root):
text = path.read_text(encoding="utf-8-sig") text = path.read_text(encoding="utf-8-sig")
searchable = mask_csharp_comments(text)
relative = path.relative_to(upstream).as_posix() relative = path.relative_to(upstream).as_posix()
dependencies = sorted( dependencies = sorted(
helper_path helper_path
for helper, helper_path in helpers.items() 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): for attr_index, attr in enumerate(attrs):
next_attr = attrs[attr_index + 1].start() if attr_index + 1 < len(attrs) else len(text) next_attr = attrs[attr_index + 1].start() if attr_index + 1 < len(attrs) else len(searchable)
method = METHOD_RE.search(text, attr.end(), next_attr + 1200) method = METHOD_RE.search(searchable, attr.end(), next_attr + 1200)
if method is None: if method is None:
method = METHOD_RE.search(text, attr.end()) method = METHOD_RE.search(searchable, attr.end())
if method is None: if method is None:
raise RuntimeError(f"No test method after {relative}:{text.count(chr(10), 0, attr.start()) + 1}") 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) 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" fixture = class_match.group(1) if class_match else "UnknownFixture"
attr_text = " ".join(attr.group(0).split()) attr_text = " ".join(attr.group(0).split())
parameters = " ".join((attr.group(2) or "").split()) or None parameters = " ".join((attr.group(2) or "").split()) or None
line = text.count("\n", 0, attr.start()) + 1 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: 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))) categories = sorted(set(CATEGORY_RE.findall(category_text)))
tests.append( tests.append(
{ {

View File

@@ -4,10 +4,37 @@ import unittest
from pathlib import Path from pathlib import Path
from unittest.mock import patch 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): 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: def test_reviewed_rust_test_is_preserved_and_excluded_from_placeholders(self) -> None:
with tempfile.TemporaryDirectory() as temporary: with tempfile.TemporaryDirectory() as temporary:
root = Path(temporary) root = Path(temporary)