Implement network lifecycle teardown and logout (#57)
All checks were successful
Native code generation / deterministic (push) Successful in 12m4s
Imaging and meshing gate / native (push) Successful in 4m3s
Native Rust workspace compile / compile (push) Successful in 4m6s

This commit is contained in:
2026-08-09 19:11:21 +00:00
parent 3951bdb809
commit 1fd127bd8a
7 changed files with 1068 additions and 65 deletions

View File

@@ -16206,18 +16206,9 @@ impl LoadUrlEventArgs {
}
/// C# type: `T:LibreMetaverse.LoggedOutEventArgs`.
pub struct LoggedOutEventArgs {
/// C# member: `F:LibreMetaverse.LoggedOutEventArgs.InventoryItems`.
pub inventory_items: Vec<libremetaverse_types::UUID>,
}
impl LoggedOutEventArgs {
/// C# member: `M:LibreMetaverse.LoggedOutEventArgs.#ctor(System.Collections.Generic.List{LibreMetaverse.UUID})`.
pub fn new(inventory_items: Vec<libremetaverse_types::UUID>) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.LoggedOutEventArgs.#ctor(System.Collections.Generic.List{LibreMetaverse.UUID})",
)
}
}
/// C# member: `F:LibreMetaverse.LoggedOutEventArgs.InventoryItems`.
/// C# member: `M:LibreMetaverse.LoggedOutEventArgs.#ctor(System.Collections.Generic.List{LibreMetaverse.UUID})`.
pub use crate::network_manager::LoggedOutEventArgs;
/// C# type: `T:LibreMetaverse.Logger`.
pub struct Logger;
@@ -17640,7 +17631,8 @@ impl NetworkManager {
&self,
handler: libremetaverse_types::compat::EventHandler<libremetaverse::LoggedOutEventArgs>,
) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!("E:LibreMetaverse.NetworkManager.LoggedOut")
/* native network implementation */
self.native_subscribe_logged_out(handler)
}
/// C# member: `E:LibreMetaverse.NetworkManager.LoginProgress`.
pub fn subscribe_login_progress(
@@ -17712,7 +17704,8 @@ impl NetworkManager {
}
/// C# member: `M:LibreMetaverse.NetworkManager.BeginLogout`.
pub fn begin_logout(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.NetworkManager.BeginLogout")
/* native network implementation */
self.native_begin_logout()
}
/// C# member: `M:LibreMetaverse.NetworkManager.Connect(System.Net.IPAddress,System.UInt16,System.UInt64,System.Boolean,System.Uri)`.
pub fn connect_with_ip_address_u_int16_u_int64_boolean_uri(
@@ -18035,16 +18028,16 @@ impl NetworkManager {
}
/// C# member: `M:LibreMetaverse.NetworkManager.Logout`.
pub fn logout_with_method(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.NetworkManager.Logout")
/* native network implementation */
self.native_logout()
}
/// C# member: `M:LibreMetaverse.NetworkManager.LogoutAsync(System.Threading.CancellationToken)`.
pub async fn logout_with_cancellation_token(
&self,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.NetworkManager.LogoutAsync(System.Threading.CancellationToken)",
)
/* native network implementation */
self.native_logout_async(cancellation_token).await
}
/// C# member: `M:LibreMetaverse.NetworkManager.RefreshMac`.
pub fn refresh_mac() -> Result<(), crate::Error> {
@@ -18102,7 +18095,8 @@ impl NetworkManager {
}
/// C# member: `M:LibreMetaverse.NetworkManager.RequestLogout`.
pub fn request_logout(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.NetworkManager.RequestLogout")
/* native network implementation */
self.native_request_logout()
}
/// C# member: `M:LibreMetaverse.NetworkManager.SendPacket(LibreMetaverse.Packets.Packet)`.
pub fn send_packet_with_packet(