Implement native client core lifecycle (#51)
Some checks failed
Native code generation / deterministic (push) Failing after 6m8s
Imaging and meshing gate / native (push) Failing after 17s
JPEG 2000 feature / linux (push) Failing after 59s
Skia feature / linux (push) Failing after 1m33s

This commit is contained in:
2026-08-09 10:53:33 +00:00
parent 167f469fc2
commit b413cd6f4d
11 changed files with 1470 additions and 79 deletions

View File

@@ -3296,6 +3296,7 @@ impl AgentPreferencesEventArgs {
}
/// C# type: `T:LibreMetaverse.AgentSettings`.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct AgentSettings {
/// C# member: `F:LibreMetaverse.AgentSettings.DisableUpdateDuplicateCheck`.
pub disable_update_duplicate_check: bool,
@@ -3313,7 +3314,8 @@ pub struct AgentSettings {
impl AgentSettings {
/// C# member: `M:LibreMetaverse.AgentSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.AgentSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::agent_settings_defaults())
}
}
@@ -4976,6 +4978,7 @@ impl AssetCacheComputeAssetCacheFilenameDelegate {
}
/// C# type: `T:LibreMetaverse.AssetCacheSettings`.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct AssetCacheSettings {
/// C# member: `F:LibreMetaverse.AssetCacheSettings.Dir`.
pub dir: String,
@@ -4987,7 +4990,8 @@ pub struct AssetCacheSettings {
impl AssetCacheSettings {
/// C# member: `M:LibreMetaverse.AssetCacheSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.AssetCacheSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::asset_cache_settings_defaults())
}
}
@@ -7493,6 +7497,7 @@ impl CompressedFlags {
}
/// C# type: `T:LibreMetaverse.ConnectionSettings`.
#[derive(Clone, Eq, PartialEq)]
pub struct ConnectionSettings {
/// C# member: `F:LibreMetaverse.ConnectionSettings.LoginServer`.
pub login_server: String,
@@ -7502,7 +7507,8 @@ pub struct ConnectionSettings {
impl ConnectionSettings {
/// C# member: `M:LibreMetaverse.ConnectionSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.ConnectionSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::connection_settings_defaults())
}
}
@@ -10958,23 +10964,29 @@ pub use crate::foliage_catalog::GrassDefinition;
pub use crate::foliage_catalog::GrassDefinitions;
/// C# type: `T:LibreMetaverse.GridClient`.
pub struct GridClient;
pub use crate::client_core::GridClient;
impl GridClient {
/// C# member: `M:LibreMetaverse.GridClient.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.GridClient.#ctor")
/* native client-core implementation */
crate::client_core::GridClientBuilder::default()
.build()
.map_err(Into::into)
}
/// C# member: `M:LibreMetaverse.GridClient.Dispose`.
pub fn dispose_with_method(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.GridClient.Dispose")
/* native client-core implementation */
self.shutdown().map_err(Into::into)
}
/// C# member: `M:LibreMetaverse.GridClient.DisposeAsync`.
pub async fn dispose_with_method_87ebceff(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.GridClient.DisposeAsync")
/* native client-core implementation */
self.shutdown().map_err(Into::into)
}
/// C# member: `M:LibreMetaverse.GridClient.ToString`.
pub fn to_string(&self) -> String {
libremetaverse_types::unimplemented_api!("M:LibreMetaverse.GridClient.ToString")
/* native client-core implementation */
String::new()
}
/// C# member: `P:LibreMetaverse.GridClient.AisClient`.
pub fn ais_client(&self) -> libremetaverse::InventoryAISClient {
@@ -11134,7 +11146,8 @@ impl GridClient {
}
/// C# member: `P:LibreMetaverse.GridClient.Settings`.
pub fn settings(&mut self) -> &mut libremetaverse::Settings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.GridClient.Settings")
/* native client-core implementation */
&mut self.settings
}
/// C# member: `P:LibreMetaverse.GridClient.Sound`.
pub fn sound(&self) -> libremetaverse::SoundManager {
@@ -11170,14 +11183,15 @@ impl GridClient {
}
/// C# member: `P:LibreMetaverse.GridClient.TimeProvider`.
pub fn time_provider(&self) -> libremetaverse_types::compat::TimeProvider {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.GridClient.TimeProvider")
/* native client-core implementation */
self.time_provider.clone()
}
/// Setter for C# member: `P:LibreMetaverse.GridClient.TimeProvider`.
pub fn set_time_provider(&mut self, value: libremetaverse_types::compat::TimeProvider) {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.GridClient.TimeProvider")
/* native client-core implementation */
self.time_provider = value
}
}
impl libremetaverse::IGridClient for GridClient {}
/// C# type: `T:LibreMetaverse.GridClientBakingTextureProvider`.
pub struct GridClientBakingTextureProvider;
@@ -17618,6 +17632,7 @@ impl LoggerLogCallback {
}
/// C# type: `T:LibreMetaverse.LoggingSettings`.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct LoggingSettings {
/// C# member: `F:LibreMetaverse.LoggingSettings.LogDiskCache`.
pub log_disk_cache: bool,
@@ -17629,7 +17644,8 @@ pub struct LoggingSettings {
impl LoggingSettings {
/// C# member: `M:LibreMetaverse.LoggingSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.LoggingSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::logging_settings_defaults())
}
}
@@ -21519,6 +21535,7 @@ impl PacketSentEventArgs {
}
/// C# type: `T:LibreMetaverse.PacketSettings`.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct PacketSettings {
/// C# member: `F:LibreMetaverse.PacketSettings.EnableSimStats`.
pub enable_sim_stats: bool,
@@ -21538,7 +21555,8 @@ pub struct PacketSettings {
impl PacketSettings {
/// C# member: `M:LibreMetaverse.PacketSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.PacketSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::packet_settings_defaults())
}
}
@@ -22666,6 +22684,7 @@ pub enum ParcelResult {
}
/// C# type: `T:LibreMetaverse.ParcelSettings`.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ParcelSettings {
/// C# member: `F:LibreMetaverse.ParcelSettings.AlwaysRequestAcl`.
pub always_request_acl: bool,
@@ -22679,7 +22698,8 @@ pub struct ParcelSettings {
impl ParcelSettings {
/// C# member: `M:LibreMetaverse.ParcelSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.ParcelSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::parcel_settings_defaults())
}
}
@@ -25426,10 +25446,8 @@ impl SetDisplayNameReplyEventArgs {
}
/// C# type: `T:LibreMetaverse.Settings`.
pub struct Settings {
/// C# member: `F:LibreMetaverse.Settings.DefaultEffectColor`.
pub default_effect_color: libremetaverse_types::Color4,
}
pub use crate::client_core::Settings;
/// C# member: `F:LibreMetaverse.Settings.DefaultEffectColor`.
impl Settings {
/// C# member: `F:LibreMetaverse.Settings.AditiLoginServer`.
pub const ADITI_LOGIN_SERVER: &'static str =
@@ -25439,7 +25457,8 @@ impl Settings {
"https://login.agni.lindenlab.com/cgi-bin/login.cgi";
/// C# member: `F:LibreMetaverse.Settings.BindAddress`.
pub fn bind_address() -> std::net::IpAddr {
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Settings.BindAddress")
/* native client-core implementation */
std::net::IpAddr::V4(std::net::Ipv4Addr::UNSPECIFIED)
}
/// C# member: `F:LibreMetaverse.Settings.EnableInventoryStore`.
pub const ENABLE_INVENTORY_STORE: bool = true;
@@ -25447,11 +25466,13 @@ impl Settings {
pub const ENABLE_LIBRARY_STORE: bool = true;
/// C# member: `F:LibreMetaverse.Settings.LogLevel`.
pub fn log_level() -> libremetaverse::logging::LogLevel {
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Settings.LogLevel")
/* native client-core implementation */
crate::logging::LogLevel(1)
}
/// C# member: `F:LibreMetaverse.Settings.MaxHttpConnections`.
pub fn max_http_connections() -> i32 {
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Settings.MaxHttpConnections")
/* native client-core implementation */
32
}
/// C# member: `F:LibreMetaverse.Settings.MaxPacketSize`.
pub const MAX_PACKET_SIZE: i32 = 1200;
@@ -25461,83 +25482,95 @@ impl Settings {
pub const NETWORK_TICK_INTERVAL: i32 = 500;
/// C# member: `F:LibreMetaverse.Settings.PacketArchiveSize`.
pub fn packet_archive_size() -> i32 {
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Settings.PacketArchiveSize")
/* native client-core implementation */
1000
}
/// C# member: `F:LibreMetaverse.Settings.PingInterval`.
pub const PING_INTERVAL: i32 = 2200;
/// C# member: `F:LibreMetaverse.Settings.ResourceDir`.
pub fn resource_dir() -> String {
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Settings.ResourceDir")
/* native client-core implementation */
"linden".to_owned()
}
/// C# member: `F:LibreMetaverse.Settings.SimulatorPoolTimeout`.
pub fn simulator_pool_timeout() -> i32 {
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Settings.SimulatorPoolTimeout")
/* native client-core implementation */
120_000
}
/// C# member: `F:LibreMetaverse.Settings.TexturePipelineRefreshInterval`.
pub fn texture_pipeline_refresh_interval() -> f32 {
libremetaverse_types::unimplemented_api!(
"F:LibreMetaverse.Settings.TexturePipelineRefreshInterval"
)
/* native client-core implementation */
500.0
}
/// C# member: `F:LibreMetaverse.Settings.UdpReceiveQueueCapacity`.
pub fn udp_receive_queue_capacity() -> i32 {
libremetaverse_types::unimplemented_api!(
"F:LibreMetaverse.Settings.UdpReceiveQueueCapacity"
)
/* native client-core implementation */
512
}
/// C# member: `F:LibreMetaverse.Settings.UserAgent`.
pub fn user_agent() -> String {
libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Settings.UserAgent")
/* native client-core implementation */
"LibreMetaverse".to_owned()
}
/// C# member: `M:LibreMetaverse.Settings.#ctor(LibreMetaverse.GridClient)`.
pub fn new(client: libremetaverse::GridClient) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Settings.#ctor(LibreMetaverse.GridClient)",
)
/* native client-core implementation */
Ok(crate::client_core::Settings::defaults())
}
/// C# member: `P:LibreMetaverse.Settings.Agent`.
pub fn agent(&self) -> libremetaverse::AgentSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.Agent")
/* native client-core implementation */
self.agent.clone()
}
/// C# member: `P:LibreMetaverse.Settings.AssetCache`.
pub fn asset_cache(&self) -> libremetaverse::AssetCacheSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.AssetCache")
/* native client-core implementation */
self.asset_cache.clone()
}
/// C# member: `P:LibreMetaverse.Settings.Connection`.
pub fn connection(&self) -> libremetaverse::ConnectionSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.Connection")
/* native client-core implementation */
self.connection.clone()
}
/// C# member: `P:LibreMetaverse.Settings.Logging`.
pub fn logging(&self) -> libremetaverse::LoggingSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.Logging")
/* native client-core implementation */
self.logging.clone()
}
/// C# member: `P:LibreMetaverse.Settings.Packets`.
pub fn packets(&self) -> libremetaverse::PacketSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.Packets")
/* native client-core implementation */
self.packets.clone()
}
/// C# member: `P:LibreMetaverse.Settings.Parcel`.
pub fn parcel(&self) -> libremetaverse::ParcelSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.Parcel")
/* native client-core implementation */
self.parcel.clone()
}
/// C# member: `P:LibreMetaverse.Settings.TexturePipeline`.
pub fn texture_pipeline(&self) -> libremetaverse::TexturePipelineSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.TexturePipeline")
/* native client-core implementation */
self.texture_pipeline.clone()
}
/// C# member: `P:LibreMetaverse.Settings.Timing`.
pub fn timing(&mut self) -> &mut libremetaverse::TimingSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.Timing")
/* native client-core implementation */
&mut self.timing
}
/// C# member: `P:LibreMetaverse.Settings.UploadCost`.
pub fn upload_cost(&self) -> i32 {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.UploadCost")
/* native client-core implementation */
self.upload_cost
}
/// Setter for C# member: `P:LibreMetaverse.Settings.UploadCost`.
pub fn set_upload_cost(&mut self, value: i32) {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.UploadCost")
/* native client-core implementation */
self.upload_cost = value
}
/// C# member: `P:LibreMetaverse.Settings.World`.
pub fn world(&self) -> libremetaverse::WorldSettings {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Settings.World")
/* native client-core implementation */
self.world.clone()
}
}
@@ -27658,6 +27691,7 @@ impl TexturePipeline {
}
/// C# type: `T:LibreMetaverse.TexturePipelineSettings`.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct TexturePipelineSettings {
/// C# member: `F:LibreMetaverse.TexturePipelineSettings.Enabled`.
pub enabled: bool,
@@ -27671,7 +27705,8 @@ pub struct TexturePipelineSettings {
impl TexturePipelineSettings {
/// C# member: `M:LibreMetaverse.TexturePipelineSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.TexturePipelineSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::texture_pipeline_settings_defaults())
}
}
@@ -27696,6 +27731,7 @@ pub enum TextureRequestState {
}
/// C# type: `T:LibreMetaverse.TimingSettings`.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct TimingSettings {
/// C# member: `F:LibreMetaverse.TimingSettings.AgentUpdateInterval`.
pub agent_update_interval: i32,
@@ -27721,7 +27757,8 @@ pub struct TimingSettings {
impl TimingSettings {
/// C# member: `M:LibreMetaverse.TimingSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.TimingSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::timing_settings_defaults())
}
}
@@ -28359,6 +28396,7 @@ pub struct Vote {
impl Vote {}
/// C# type: `T:LibreMetaverse.WorldSettings`.
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct WorldSettings {
/// C# member: `F:LibreMetaverse.WorldSettings.AlwaysDecodeObjects`.
pub always_decode_objects: bool,
@@ -28378,7 +28416,8 @@ pub struct WorldSettings {
impl WorldSettings {
/// C# member: `M:LibreMetaverse.WorldSettings.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.WorldSettings.#ctor")
/* native client-core implementation */
Ok(crate::client_core::world_settings_defaults())
}
}