Implement Types collections and token bucket

This commit is contained in:
2026-08-08 23:45:26 +00:00
parent 28bd5a0296
commit ae0b7966e2
10 changed files with 1881 additions and 1023 deletions

View File

@@ -51,7 +51,7 @@ Running `cargo test --workspace` is intentionally red during the shim stage.
## Native implementation progress
Milestone 04 implementation has begun. `libremetaverse-types` now provides
Milestone 04 is complete. `libremetaverse-types` now provides
native UUID, incremental CRC-32, little-endian floating-point byte helpers,
Vector2/Vector3/Vector3d/Vector4 arithmetic and serialization, Color4 color
conversion, Ray storage, Quaternion rotation/interpolation/serialization, and
@@ -66,8 +66,12 @@ direction. All Types enum discriminants retain their C# widths, extensible
protocol flags preserve unknown bits, and the native conversion layer covers
numeric and floating-point byte order, UTF-8
and hex text, hashes and PBKDF2, timestamps, IP addresses, region handles, enum
metadata, and cross-platform OS detection. The remaining Types collections,
caches, and token bucket stay visibly failure-only until their owning milestone
issue is completed.
metadata, and cross-platform OS detection. The Types collections,
including duplicate-preserving multi-value and synchronized double-key maps,
bounded LRU/MRU caches, deterministic absolute and sliding expiration, and
hierarchical token-bucket throttling are native Rust as well. Cache and bucket
tests use injected monotonic clocks, and concurrency invariants run without
sleep-based timing. All 45 Types and all 942 mapped members now resolve to
native implementations; no generated Types shims remain.
The controlled audit aggregates every expected failure by standardized C#
member ID and rejects unrelated fixture, assertion, compile, or symbol errors.

View File

@@ -10827,7 +10827,7 @@ M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Reset method System
M:LibreMetaverse.CacheDictionary`2.Clear method System.Void LibreMetaverse.CacheDictionary<TKey, TValue>.Clear() libremetaverse-types libremetaverse_types::CacheDictionary::clear pub fn clear(&self) -> Result<(), crate::Error> shared_self sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.CacheDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1}) method System.Boolean LibreMetaverse.CacheDictionary<TKey, TValue>.Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) libremetaverse-types libremetaverse_types::CacheDictionary::contains pub fn contains(&self, item: (TKey, Option<TValue>)) -> Result<bool, crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.CacheDictionary`2.ContainsKey(`0) method System.Boolean LibreMetaverse.CacheDictionary<TKey, TValue>.ContainsKey(TKey key) libremetaverse-types libremetaverse_types::CacheDictionary::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.CacheDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32) method System.Void LibreMetaverse.CacheDictionary<TKey, TValue>.CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, System.Int32 arrayIndex) libremetaverse-types libremetaverse_types::CacheDictionary::copy_to pub fn copy_to(&self, array: Vec<(TKey, TValue)>, array_index: i32) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.CacheDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32) method System.Void LibreMetaverse.CacheDictionary<TKey, TValue>.CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, System.Int32 arrayIndex) libremetaverse-types libremetaverse_types::CacheDictionary::copy_to pub fn copy_to(&self, array: &mut [(TKey, Option<TValue>)], array_index: i32) -> Result<(), crate::Error> shared_self,mutable_borrow,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.CacheDictionary`2.GetEnumerator method System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> LibreMetaverse.CacheDictionary<TKey, TValue>.GetEnumerator() libremetaverse-types libremetaverse_types::CacheDictionary::get_enumerator pub fn get_enumerator(&self) -> Result<Box<dyn Iterator<Item = (TKey, Option<TValue>)>>, crate::Error> shared_self sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.CacheDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1}) method System.Boolean LibreMetaverse.CacheDictionary<TKey, TValue>.Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) libremetaverse-types libremetaverse_types::CacheDictionary::remove_with_key_value_pair pub fn remove_with_key_value_pair(&self, item: (TKey, Option<TValue>)) -> Result<bool, crate::Error> shared_self,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.CacheDictionary`2.Remove(`0) method System.Boolean LibreMetaverse.CacheDictionary<TKey, TValue>.Remove(TKey key) libremetaverse-types libremetaverse_types::CacheDictionary::remove_with_t_key pub fn remove_with_t_key(&self, key: TKey) -> Result<bool, crate::Error> shared_self,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
@@ -11071,7 +11071,7 @@ M:LibreMetaverse.ExpiringCache`2.AddOrUpdate(`0,`1,System.Double) method System.
M:LibreMetaverse.ExpiringCache`2.AddOrUpdate(`0,`1,System.TimeSpan) method System.Boolean LibreMetaverse.ExpiringCache<TKey, TValue>.AddOrUpdate(TKey key, TValue value, System.TimeSpan slidingExpiration) libremetaverse-types libremetaverse_types::ExpiringCache::add_or_update_with_t_key_t_value_time_span pub fn add_or_update_with_t_key_t_value_time_span(&self, key: TKey, value: Option<TValue>, sliding_expiration: std::time::Duration) -> Result<bool, crate::Error> shared_self,owned,owned,owned sync Result<_, crate::Error> descriptive_overload_name method mapped
M:LibreMetaverse.ExpiringCache`2.Clear method System.Void LibreMetaverse.ExpiringCache<TKey, TValue>.Clear() libremetaverse-types libremetaverse_types::ExpiringCache::clear pub fn clear(&self) -> Result<(), crate::Error> shared_self sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ExpiringCache`2.Contains(`0) method System.Boolean LibreMetaverse.ExpiringCache<TKey, TValue>.Contains(TKey key) libremetaverse-types libremetaverse_types::ExpiringCache::contains pub fn contains(&self, key: TKey) -> Result<bool, crate::Error> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ExpiringCache`2.CopyTo(System.Array,System.Int32) method System.Void LibreMetaverse.ExpiringCache<TKey, TValue>.CopyTo(System.Array array, System.Int32 startIndex) libremetaverse-types libremetaverse_types::ExpiringCache::copy_to pub fn copy_to(&self, array: libremetaverse_types::compat::Array, start_index: i32) -> Result<(), crate::Error> shared_self,owned,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ExpiringCache`2.CopyTo(System.Array,System.Int32) method System.Void LibreMetaverse.ExpiringCache<TKey, TValue>.CopyTo(System.Array array, System.Int32 startIndex) libremetaverse-types libremetaverse_types::ExpiringCache::copy_to pub fn copy_to(&self, array: &mut [(TKey, Option<TValue>)], start_index: i32) -> Result<(), crate::Error> shared_self,mutable_borrow,owned sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ExpiringCache`2.Dispose method System.Void LibreMetaverse.ExpiringCache<TKey, TValue>.Dispose() libremetaverse-types libremetaverse_types::ExpiringCache::dispose pub fn dispose(&self) -> Result<(), crate::Error> shared_self sync Result<_, crate::Error> direct_snake_case method mapped
M:LibreMetaverse.ExpiringCache`2.Remove(`0) method System.Boolean LibreMetaverse.ExpiringCache<TKey, TValue>.Remove(TKey key) libremetaverse-types libremetaverse_types::ExpiringCache::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.ExpiringCache`2.TryGetValue(`0,`1@) method System.Boolean LibreMetaverse.ExpiringCache<TKey, TValue>.TryGetValue(TKey key, out TValue& value) libremetaverse-types libremetaverse_types::ExpiringCache::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
@@ -26181,7 +26181,7 @@ P:LibreMetaverse.EventQueueRunningEventArgs.Simulator property LibreMetaverse.Si
P:LibreMetaverse.ExperienceInfoEventArgs.ExperienceInfo property LibreMetaverse.Messages.Linden.ExperienceInfoMessage LibreMetaverse.ExperienceInfoEventArgs.ExperienceInfo libremetaverse libremetaverse::ExperienceInfoEventArgs::experience_info pub fn experience_info(&self) -> libremetaverse::messages::linden::ExperienceInfoMessage shared_self sync infallible_placeholder direct_snake_case accessor_methods mapped
P:LibreMetaverse.ExperiencePreferencesEventArgs.Preferences property LibreMetaverse.Messages.Linden.ExperiencePreferencesMessage LibreMetaverse.ExperiencePreferencesEventArgs.Preferences libremetaverse libremetaverse::ExperiencePreferencesEventArgs::preferences pub fn preferences(&self) -> libremetaverse::messages::linden::ExperiencePreferencesMessage shared_self sync infallible_placeholder direct_snake_case accessor_methods mapped
P:LibreMetaverse.ExpiringCache`2.Count property System.Int32 LibreMetaverse.ExpiringCache<TKey, TValue>.Count libremetaverse-types libremetaverse_types::ExpiringCache::count pub fn count(&self) -> i32 shared_self sync infallible_placeholder direct_snake_case accessor_methods mapped
P:LibreMetaverse.ExpiringCache`2.Item(`0) indexer System.Object LibreMetaverse.ExpiringCache<TKey, TValue>.Item libremetaverse-types libremetaverse_types::ExpiringCache::item pub fn item(&self, key: TKey) -> Option<libremetaverse_types::compat::Object> shared_self,owned sync infallible_placeholder direct_snake_case accessor_methods mapped
P:LibreMetaverse.ExpiringCache`2.Item(`0) indexer System.Object LibreMetaverse.ExpiringCache<TKey, TValue>.Item libremetaverse-types libremetaverse_types::ExpiringCache::item pub fn item(&self, key: TKey) -> Option<TValue> shared_self,owned sync Result<_, crate::Error> direct_snake_case method mapped
P:LibreMetaverse.FindObjectByPathReplyEventArgs.InventoryObjectID property LibreMetaverse.UUID LibreMetaverse.FindObjectByPathReplyEventArgs.InventoryObjectID libremetaverse libremetaverse::FindObjectByPathReplyEventArgs::inventory_object_id pub fn inventory_object_id(&self) -> libremetaverse_types::UUID shared_self sync infallible_placeholder direct_snake_case accessor_methods mapped
P:LibreMetaverse.FindObjectByPathReplyEventArgs.Path property System.String LibreMetaverse.FindObjectByPathReplyEventArgs.Path libremetaverse libremetaverse::FindObjectByPathReplyEventArgs::path pub fn path(&self) -> String shared_self sync infallible_placeholder direct_snake_case accessor_methods mapped
P:LibreMetaverse.FolderUpdatedEventArgs.FolderID property LibreMetaverse.UUID LibreMetaverse.FolderUpdatedEventArgs.FolderID libremetaverse libremetaverse::FolderUpdatedEventArgs::folder_id pub fn folder_id(&self) -> libremetaverse_types::UUID shared_self sync infallible_placeholder direct_snake_case accessor_methods mapped
Can't render this file because it is too large.

View File

@@ -13,7 +13,7 @@ Generated by `python3 tools/generate_api_shims.py`; do not edit by hand.
| `LibreMetaverse.Rendering.MeshFoundry` | 1 | 14 | callable failure-only shim |
| `LibreMetaverse.Rendering.Simple` | 1 | 6 | callable failure-only shim |
| `LibreMetaverse.StructuredData` | 16 | 295 | callable failure-only shim |
| `LibreMetaverse.Types` | 45 | 942 | native implementation: 35 types / 821 members; remaining surface is callable failure-only shims |
| `LibreMetaverse.Types` | 45 | 942 | native implementation: 45 types / 942 members; no generated shims remain |
| `LibreMetaverse.Utilities` | 3 | 13 | callable failure-only shim |
| `LibreMetaverse.Voice.Vivox` | 64 | 531 | callable failure-only shim |
| `LibreMetaverse.Voice.WebRTC` | 12 | 210 | callable failure-only shim |

File diff suppressed because it is too large Load Diff

View File

@@ -191,142 +191,30 @@ pub enum AttachmentPoint {
pub use crate::crc32::CRC32;
/// C# type: `T:LibreMetaverse.CacheDictionary`2`.
pub struct CacheDictionary<TKey, TValue> {
entries: std::collections::HashMap<TKey, TValue>,
_marker: std::marker::PhantomData<(TKey, TValue)>,
}
impl<TKey, TValue> CacheDictionary<TKey, TValue> {
/// C# member: `M:LibreMetaverse.CacheDictionary`2.#ctor(System.Int32,LibreMetaverse.ICacheDictionaryRemovalStrategy{`0})`.
pub fn new(
max_size: i32,
removal_strategy: Box<dyn libremetaverse_types::ICacheDictionaryRemovalStrategy<TKey>>,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.CacheDictionary`2.#ctor(System.Int32,LibreMetaverse.ICacheDictionaryRemovalStrategy{`0})",
)
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})`.
pub fn add_with_key_value_pair(
&self,
item: (TKey, Option<TValue>),
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.CacheDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})",
)
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.Add(`0,`1)`.
pub fn add_with_t_key_t_value(
&self,
key: TKey,
value: Option<TValue>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.CacheDictionary`2.Add(`0,`1)")
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.Clear`.
pub fn clear(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.CacheDictionary`2.Clear")
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})`.
pub fn contains(&self, item: (TKey, Option<TValue>)) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.CacheDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})",
)
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.ContainsKey(`0)`.
pub fn contains_key(&self, key: TKey) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.CacheDictionary`2.ContainsKey(`0)")
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)`.
pub fn copy_to(
&self,
array: Vec<(TKey, TValue)>,
array_index: i32,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.CacheDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.GetEnumerator`.
pub fn get_enumerator(
&self,
) -> Result<Box<dyn Iterator<Item = (TKey, Option<TValue>)>>, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.CacheDictionary`2.GetEnumerator")
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})`.
pub fn remove_with_key_value_pair(
&self,
item: (TKey, Option<TValue>),
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.CacheDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})",
)
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.Remove(`0)`.
pub fn remove_with_t_key(&self, key: TKey) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.CacheDictionary`2.Remove(`0)")
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.TryGetValue(`0,`1@)`.
pub fn try_get_value(&self, key: TKey, value: &mut Option<TValue>) -> bool {
libremetaverse_types::unimplemented_api!(
"M:LibreMetaverse.CacheDictionary`2.TryGetValue(`0,`1@)"
)
}
/// C# member: `P:LibreMetaverse.CacheDictionary`2.Count`.
pub fn count(&self) -> i32 {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.CacheDictionary`2.Count")
}
/// C# member: `P:LibreMetaverse.CacheDictionary`2.IsReadOnly`.
pub fn is_read_only(&self) -> bool {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.CacheDictionary`2.IsReadOnly")
}
/// C# member: `P:LibreMetaverse.CacheDictionary`2.Item(`0)`.
pub fn item(&self, key: Option<TKey>) -> Option<TValue> {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.CacheDictionary`2.Item(`0)")
}
/// Setter for C# member: `P:LibreMetaverse.CacheDictionary`2.Item(`0)`.
pub fn set_item(&mut self, key: Option<TKey>, value: Option<TValue>) {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.CacheDictionary`2.Item(`0)")
}
/// C# member: `P:LibreMetaverse.CacheDictionary`2.Keys`.
pub fn keys(&self) -> Vec<TKey> {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.CacheDictionary`2.Keys")
}
/// C# member: `P:LibreMetaverse.CacheDictionary`2.Values`.
pub fn values(&self) -> Vec<Option<TValue>> {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.CacheDictionary`2.Values")
}
}
pub use crate::collections::CacheDictionary;
/// C# type: `T:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator`.
pub struct CacheDictionaryCacheDictionaryEnumerator<TKey, TValue> {
_marker: std::marker::PhantomData<(TKey, TValue)>,
}
impl<TKey, TValue> CacheDictionaryCacheDictionaryEnumerator<TKey, TValue> {
/// C# member: `M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Dispose`.
pub fn dispose(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Dispose",
)
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.MoveNext`.
pub fn move_next(&self) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.MoveNext",
)
}
/// C# member: `M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Reset`.
pub fn reset(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Reset",
)
}
/// C# member: `P:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Current`.
pub fn current(&self) -> (TKey, Option<TValue>) {
libremetaverse_types::unimplemented_api!(
"P:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Current"
)
}
}
pub use crate::collections::CacheDictionaryCacheDictionaryEnumerator;
/// C# type: `T:LibreMetaverse.ClickAction`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
@@ -384,187 +272,36 @@ pub enum ClickAction {
pub use crate::color4::Color4;
/// C# type: `T:LibreMetaverse.DoubleDictionary`3`.
pub struct DoubleDictionary<TKey1, TKey2, TValue> {
by_first: std::collections::HashMap<TKey1, TValue>,
by_second: std::collections::HashMap<TKey2, TValue>,
_marker: std::marker::PhantomData<(TKey1, TKey2, TValue)>,
}
impl<TKey1, TKey2, TValue> DoubleDictionary<TKey1, TKey2, TValue> {
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.#ctor`.
pub fn new_with_constructor() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.#ctor")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.#ctor(System.Int32)`.
pub fn new_with_int32(capacity: i32) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.DoubleDictionary`3.#ctor(System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.Add(`0,`1,`2)`.
pub fn add(&self, key1: TKey1, key2: TKey2, value: Option<TValue>) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.Add(`0,`1,`2)")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.Clear`.
pub fn clear(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.Clear")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.ContainsKey(`0)`.
pub fn contains_key_with_t_key1(&self, key: TKey1) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.ContainsKey(`0)")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.ContainsKey(`1)`.
pub fn contains_key_with_t_key2(&self, key: TKey2) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.ContainsKey(`1)")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.Dispose`.
pub fn dispose(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.Dispose")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.FindAll(System.Predicate{`2})`.
pub fn find_all(
&self,
predicate: Box<dyn Fn(&Option<TValue>) -> bool + Send + Sync>,
) -> Result<Vec<Option<TValue>>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.DoubleDictionary`3.FindAll(System.Predicate{`2})",
)
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.FindValue(System.Predicate{`2})`.
pub fn find_value(
&self,
predicate: Box<dyn Fn(&Option<TValue>) -> bool + Send + Sync>,
) -> Result<Option<TValue>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.DoubleDictionary`3.FindValue(System.Predicate{`2})",
)
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{System.Collections.Generic.KeyValuePair{`0,`2}})`.
pub fn for_each_with_action(
&self,
action: Box<dyn Fn((TKey1, Option<TValue>)) + Send + Sync>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{System.Collections.Generic.KeyValuePair{`0,`2}})",
)
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{System.Collections.Generic.KeyValuePair{`1,`2}})`.
pub fn for_each_with_action_4dc2e201(
&self,
action: Box<dyn Fn((TKey2, Option<TValue>)) + Send + Sync>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{System.Collections.Generic.KeyValuePair{`1,`2}})",
)
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{`2})`.
pub fn for_each_with_action_b56adc7f(
&self,
action: Box<dyn Fn(Option<TValue>) + Send + Sync>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{`2})",
)
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.Remove(`0)`.
pub fn remove_with_t_key1(&self, key1: TKey1) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.Remove(`0)")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.Remove(`0,`1)`.
pub fn remove_with_t_key1_t_key2(
&self,
key1: TKey1,
key2: TKey2,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.Remove(`0,`1)")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.Remove(`1)`.
pub fn remove_with_t_key2(&self, key2: TKey2) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.DoubleDictionary`3.Remove(`1)")
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.RemoveAll(System.Predicate{`2})`.
pub fn remove_all(
&self,
predicate: Box<dyn Fn(&Option<TValue>) -> bool + Send + Sync>,
) -> Result<i32, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.DoubleDictionary`3.RemoveAll(System.Predicate{`2})",
)
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.TryGetValue(`0,`2@)`.
pub fn try_get_value_with_t_key1_t_value(
&self,
key: TKey1,
value: &mut Option<TValue>,
) -> bool {
libremetaverse_types::unimplemented_api!(
"M:LibreMetaverse.DoubleDictionary`3.TryGetValue(`0,`2@)"
)
}
/// C# member: `M:LibreMetaverse.DoubleDictionary`3.TryGetValue(`1,`2@)`.
pub fn try_get_value_with_t_key2_t_value(
&self,
key: TKey2,
value: &mut Option<TValue>,
) -> bool {
libremetaverse_types::unimplemented_api!(
"M:LibreMetaverse.DoubleDictionary`3.TryGetValue(`1,`2@)"
)
}
/// C# member: `P:LibreMetaverse.DoubleDictionary`3.Count`.
pub fn count(&self) -> i32 {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.DoubleDictionary`3.Count")
}
}
pub use crate::collections::DoubleDictionary;
/// C# type: `T:LibreMetaverse.EmptyRemovalStrategy`1`.
pub struct EmptyRemovalStrategy<TKey> {
keys: Vec<TKey>,
_marker: std::marker::PhantomData<(TKey,)>,
}
impl<TKey> EmptyRemovalStrategy<TKey> {
/// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.EmptyRemovalStrategy`1.#ctor")
}
/// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.Clear`.
pub fn clear(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.EmptyRemovalStrategy`1.Clear")
}
/// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.GetKeyToRemove`.
pub fn get_key_to_remove(&self) -> Result<TKey, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.EmptyRemovalStrategy`1.GetKeyToRemove",
)
}
/// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.Initialize(System.Int32)`.
pub fn initialize(&self, max_size: i32) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.EmptyRemovalStrategy`1.Initialize(System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.KeyAccessed(`0)`.
pub fn key_accessed(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.EmptyRemovalStrategy`1.KeyAccessed(`0)",
)
}
/// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.KeyAdded(`0)`.
pub fn key_added(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.EmptyRemovalStrategy`1.KeyAdded(`0)",
)
}
/// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.KeyRemoved(`0)`.
pub fn key_removed(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.EmptyRemovalStrategy`1.KeyRemoved(`0)",
)
}
}
impl<TKey> libremetaverse_types::ICacheDictionaryRemovalStrategy<TKey>
for EmptyRemovalStrategy<TKey>
{
}
pub use crate::collections::EmptyRemovalStrategy;
/// C# type: `T:LibreMetaverse.EnumInfoAttribute`.
/// C# member: `F:LibreMetaverse.EnumInfoAttribute.Text`.
@@ -577,130 +314,23 @@ pub use crate::enum_compat::EnumInfoAttribute;
pub use crate::enum_compat::EnumInfoExtensions;
/// C# type: `T:LibreMetaverse.ExpiringCache`2`.
pub struct ExpiringCache<TKey, TValue> {
entries: std::collections::HashMap<TKey, TValue>,
_marker: std::marker::PhantomData<(TKey, TValue)>,
}
impl<TKey, TValue> ExpiringCache<TKey, TValue> {
/// C# member: `M:LibreMetaverse.ExpiringCache`2.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.ExpiringCache`2.#ctor")
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Add(`0,`1,System.Double)`.
pub fn add_with_t_key_t_value_double(
&self,
key: TKey,
value: Option<TValue>,
expiration_seconds: f64,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ExpiringCache`2.Add(`0,`1,System.Double)",
)
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Add(`0,`1,System.TimeSpan)`.
pub fn add_with_t_key_t_value_time_span(
&self,
key: TKey,
value: Option<TValue>,
sliding_expiration: std::time::Duration,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ExpiringCache`2.Add(`0,`1,System.TimeSpan)",
)
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.AddOrUpdate(`0,`1,System.Double)`.
pub fn add_or_update_with_t_key_t_value_double(
&self,
key: TKey,
value: Option<TValue>,
expiration_seconds: f64,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ExpiringCache`2.AddOrUpdate(`0,`1,System.Double)",
)
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.AddOrUpdate(`0,`1,System.TimeSpan)`.
pub fn add_or_update_with_t_key_t_value_time_span(
&self,
key: TKey,
value: Option<TValue>,
sliding_expiration: std::time::Duration,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ExpiringCache`2.AddOrUpdate(`0,`1,System.TimeSpan)",
)
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Clear`.
pub fn clear(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.ExpiringCache`2.Clear")
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Contains(`0)`.
pub fn contains(&self, key: TKey) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.ExpiringCache`2.Contains(`0)")
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.CopyTo(System.Array,System.Int32)`.
pub fn copy_to(
&self,
array: libremetaverse_types::compat::Array,
start_index: i32,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ExpiringCache`2.CopyTo(System.Array,System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Dispose`.
pub fn dispose(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.ExpiringCache`2.Dispose")
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Remove(`0)`.
pub fn remove(&self, key: TKey) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.ExpiringCache`2.Remove(`0)")
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.TryGetValue(`0,`1@)`.
pub fn try_get_value(&self, key: TKey, value: &mut Option<TValue>) -> bool {
libremetaverse_types::unimplemented_api!(
"M:LibreMetaverse.ExpiringCache`2.TryGetValue(`0,`1@)"
)
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Update(`0,`1)`.
pub fn update_with_t_key_t_value(
&self,
key: TKey,
value: Option<TValue>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.ExpiringCache`2.Update(`0,`1)")
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Update(`0,`1,System.Double)`.
pub fn update_with_t_key_t_value_double(
&self,
key: TKey,
value: Option<TValue>,
expiration_seconds: f64,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ExpiringCache`2.Update(`0,`1,System.Double)",
)
}
/// C# member: `M:LibreMetaverse.ExpiringCache`2.Update(`0,`1,System.TimeSpan)`.
pub fn update_with_t_key_t_value_time_span(
&self,
key: TKey,
value: Option<TValue>,
sliding_expiration: std::time::Duration,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ExpiringCache`2.Update(`0,`1,System.TimeSpan)",
)
}
/// C# member: `P:LibreMetaverse.ExpiringCache`2.Count`.
pub fn count(&self) -> i32 {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.ExpiringCache`2.Count")
}
/// C# member: `P:LibreMetaverse.ExpiringCache`2.Item(`0)`.
pub fn item(&self, key: TKey) -> Option<libremetaverse_types::compat::Object> {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.ExpiringCache`2.Item(`0)")
}
}
pub use crate::collections::ExpiringCache;
/// C# type: `T:LibreMetaverse.ExtraParamType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
@@ -838,44 +468,13 @@ impl HoleType {
}
/// C# type: `T:LibreMetaverse.ICacheDictionaryRemovalStrategy`1`.
pub trait ICacheDictionaryRemovalStrategy<TKey> {
/// C# member: `M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.Clear`.
fn clear(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.Clear",
)
}
/// C# member: `M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.GetKeyToRemove`.
fn get_key_to_remove(&self) -> Result<TKey, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.GetKeyToRemove",
)
}
/// C# member: `M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.Initialize(System.Int32)`.
fn initialize(&self, max_size: i32) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.Initialize(System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.KeyAccessed(`0)`.
fn key_accessed(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.KeyAccessed(`0)",
)
}
/// C# member: `M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.KeyAdded(`0)`.
fn key_added(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.KeyAdded(`0)",
)
}
/// C# member: `M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.KeyRemoved(`0)`.
fn key_removed(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.ICacheDictionaryRemovalStrategy`1.KeyRemoved(`0)",
)
}
}
pub use crate::collections::ICacheDictionaryRemovalStrategy;
/// C# type: `T:LibreMetaverse.InventoryType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
@@ -935,52 +534,14 @@ pub enum JointType {
}
/// C# type: `T:LibreMetaverse.LruRemovalStrategy`1`.
pub struct LruRemovalStrategy<TKey> {
keys: Vec<TKey>,
_marker: std::marker::PhantomData<(TKey,)>,
}
impl<TKey> LruRemovalStrategy<TKey> {
/// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.LruRemovalStrategy`1.#ctor")
}
/// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.Clear`.
pub fn clear(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.LruRemovalStrategy`1.Clear")
}
/// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.GetKeyToRemove`.
pub fn get_key_to_remove(&self) -> Result<TKey, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.LruRemovalStrategy`1.GetKeyToRemove",
)
}
/// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.Initialize(System.Int32)`.
pub fn initialize(&self, max_size: i32) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.LruRemovalStrategy`1.Initialize(System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.KeyAccessed(`0)`.
pub fn key_accessed(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.LruRemovalStrategy`1.KeyAccessed(`0)",
)
}
/// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.KeyAdded(`0)`.
pub fn key_added(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.LruRemovalStrategy`1.KeyAdded(`0)")
}
/// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.KeyRemoved(`0)`.
pub fn key_removed(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.LruRemovalStrategy`1.KeyRemoved(`0)",
)
}
}
impl<TKey> libremetaverse_types::ICacheDictionaryRemovalStrategy<TKey>
for LruRemovalStrategy<TKey>
{
}
pub use crate::collections::LruRemovalStrategy;
/// C# type: `T:LibreMetaverse.Material`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
@@ -1078,319 +639,49 @@ pub enum Material {
pub use crate::geometry::Matrix4;
/// C# type: `T:LibreMetaverse.MruRemovalStrategy`1`.
pub struct MruRemovalStrategy<TKey> {
keys: Vec<TKey>,
_marker: std::marker::PhantomData<(TKey,)>,
}
impl<TKey> MruRemovalStrategy<TKey> {
/// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.MruRemovalStrategy`1.#ctor")
}
/// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.Clear`.
pub fn clear(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.MruRemovalStrategy`1.Clear")
}
/// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.GetKeyToRemove`.
pub fn get_key_to_remove(&self) -> Result<TKey, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MruRemovalStrategy`1.GetKeyToRemove",
)
}
/// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.Initialize(System.Int32)`.
pub fn initialize(&self, max_size: i32) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MruRemovalStrategy`1.Initialize(System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.KeyAccessed(`0)`.
pub fn key_accessed(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MruRemovalStrategy`1.KeyAccessed(`0)",
)
}
/// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.KeyAdded(`0)`.
pub fn key_added(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.MruRemovalStrategy`1.KeyAdded(`0)")
}
/// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.KeyRemoved(`0)`.
pub fn key_removed(&self, key: TKey) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MruRemovalStrategy`1.KeyRemoved(`0)",
)
}
}
impl<TKey> libremetaverse_types::ICacheDictionaryRemovalStrategy<TKey>
for MruRemovalStrategy<TKey>
{
}
pub use crate::collections::MruRemovalStrategy;
/// C# type: `T:LibreMetaverse.MultiValueDictionary`2`.
pub struct MultiValueDictionary<TKey, TValue> {
entries: std::collections::HashMap<TKey, Vec<TValue>>,
_marker: std::marker::PhantomData<(TKey, TValue)>,
}
impl<TKey, TValue> MultiValueDictionary<TKey, TValue> {
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor`.
pub fn new_with_constructor() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.MultiValueDictionary`2.#ctor")
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}})`.
pub fn new_with_i_enumerable(
enumerable: Box<dyn Iterator<Item = (TKey, Vec<Option<TValue>>)>>,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0})`.
pub fn new_with_i_enumerable_i_equality_comparer(
enumerable: Box<dyn Iterator<Item = (TKey, Vec<Option<TValue>>)>>,
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})`.
pub fn new_with_i_equality_comparer(
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Int32)`.
pub fn new_with_int32(capacity: i32) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})`.
pub fn new_with_int32_i_equality_comparer(
capacity: i32,
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Add(`0,`1)`.
pub fn add(&self, key: TKey, value: Option<TValue>) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.MultiValueDictionary`2.Add(`0,`1)")
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.AddRange(`0,System.Collections.Generic.IEnumerable{`1})`.
pub fn add_range(
&self,
key: TKey,
values: Box<dyn Iterator<Item = Option<TValue>>>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.AddRange(`0,System.Collections.Generic.IEnumerable{`1})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Clear`.
pub fn clear(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.MultiValueDictionary`2.Clear")
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Contains(`0,`1)`.
pub fn contains(&self, key: TKey, value: Option<TValue>) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Contains(`0,`1)",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.ContainsKey(`0)`.
pub fn contains_key(&self, key: TKey) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.ContainsKey(`0)",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.ContainsValue(`1)`.
pub fn contains_value(&self, value: Option<TValue>) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.ContainsValue(`1)",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1`.
pub fn create_with_method<
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>() -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented("M:LibreMetaverse.MultiValueDictionary`2.Create``1")
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}})`.
pub fn create_with_i_enumerable<
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>(
enumerable: Box<dyn Iterator<Item = (TKey, Vec<Option<TValue>>)>>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0})`.
pub fn create_with_i_enumerable_i_equality_comparer<
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>(
enumerable: Box<dyn Iterator<Item = (TKey, Vec<Option<TValue>>)>>,
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})`.
pub fn create_with_i_enumerable_i_equality_comparer_func<
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>(
enumerable: Box<dyn Iterator<Item = (TKey, Vec<Option<TValue>>)>>,
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
collection_factory: Box<dyn Fn() -> TValueCollection + Send + Sync>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Func{``0})`.
pub fn create_with_i_enumerable_func<
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>(
enumerable: Box<dyn Iterator<Item = (TKey, Vec<Option<TValue>>)>>,
collection_factory: Box<dyn Fn() -> TValueCollection + Send + Sync>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Func{``0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEqualityComparer{`0})`.
pub fn create_with_i_equality_comparer<
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>(
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEqualityComparer{`0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})`.
pub fn create_with_i_equality_comparer_func<
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>(
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
collection_factory: Box<dyn Fn() -> TValueCollection + Send + Sync>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Func{``0})`.
pub fn create_with_func<TValueCollection: libremetaverse_types::compat::Collection<TValue>>(
collection_factory: Box<dyn Fn() -> TValueCollection + Send + Sync>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Func{``0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32)`.
pub fn create_with_int32<
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>(
capacity: i32,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Collections.Generic.IEqualityComparer{`0})`.
pub fn create_with_int32_i_equality_comparer<
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>(
capacity: i32,
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Collections.Generic.IEqualityComparer{`0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})`.
pub fn create_with_int32_i_equality_comparer_func<
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>(
capacity: i32,
comparer: libremetaverse_types::compat::IEqualityComparer<TKey>,
collection_factory: Box<dyn Fn() -> TValueCollection + Send + Sync>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Func{``0})`.
pub fn create_with_int32_func<
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>(
capacity: i32,
collection_factory: Box<dyn Fn() -> TValueCollection + Send + Sync>,
) -> Result<libremetaverse_types::MultiValueDictionary<TKey, Option<TValue>>, crate::Error>
{
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Func{``0})",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.GetEnumerator`.
pub fn get_enumerator(
&self,
) -> Result<Box<dyn Iterator<Item = (TKey, Vec<Option<TValue>>)>>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.GetEnumerator",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Remove(`0)`.
pub fn remove_with_t_key(&self, key: TKey) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.MultiValueDictionary`2.Remove(`0)")
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Remove(`0,`1)`.
pub fn remove_with_t_key_t_value(
&self,
key: TKey,
value: Option<TValue>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.MultiValueDictionary`2.Remove(`0,`1)",
)
}
/// C# member: `M:LibreMetaverse.MultiValueDictionary`2.TryGetValue(`0,System.Collections.Generic.IReadOnlyCollection{`1}@)`.
pub fn try_get_value(&self, key: TKey, value: &mut Option<Vec<Option<TValue>>>) -> bool {
libremetaverse_types::unimplemented_api!(
"M:LibreMetaverse.MultiValueDictionary`2.TryGetValue(`0,System.Collections.Generic.IReadOnlyCollection{`1}@)"
)
}
/// C# member: `P:LibreMetaverse.MultiValueDictionary`2.Count`.
pub fn count(&self) -> i32 {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.MultiValueDictionary`2.Count")
}
/// C# member: `P:LibreMetaverse.MultiValueDictionary`2.Item(`0)`.
pub fn item(&self, key: TKey) -> Vec<Option<TValue>> {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.MultiValueDictionary`2.Item(`0)")
}
/// C# member: `P:LibreMetaverse.MultiValueDictionary`2.Keys`.
pub fn keys(&self) -> Box<dyn Iterator<Item = TKey>> {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.MultiValueDictionary`2.Keys")
}
/// C# member: `P:LibreMetaverse.MultiValueDictionary`2.Values`.
pub fn values(&self) -> Box<dyn Iterator<Item = Vec<Option<TValue>>>> {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.MultiValueDictionary`2.Values")
}
}
pub use crate::collections::MultiValueDictionary;
/// C# type: `T:LibreMetaverse.ObjectCategory`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
@@ -1693,63 +984,14 @@ impl SoundFlags {
}
/// C# type: `T:LibreMetaverse.TokenBucket`.
pub struct TokenBucket {
content: i32,
max_burst: i32,
drip_rate: i32,
}
impl TokenBucket {
/// C# member: `M:LibreMetaverse.TokenBucket.#ctor(LibreMetaverse.TokenBucket,System.Int32,System.Int32)`.
pub fn new(
parent: libremetaverse_types::TokenBucket,
max_burst: i32,
drip_rate: i32,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.TokenBucket.#ctor(LibreMetaverse.TokenBucket,System.Int32,System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.TokenBucket.RemoveTokens(System.Int32)`.
pub fn remove_tokens_with_int32(&self, amount: i32) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.TokenBucket.RemoveTokens(System.Int32)",
)
}
/// C# member: `M:LibreMetaverse.TokenBucket.RemoveTokens(System.Int32,System.Boolean@)`.
pub fn remove_tokens_with_int32_boolean(
&self,
amount: i32,
drip_succeeded: &mut bool,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.TokenBucket.RemoveTokens(System.Int32,System.Boolean@)",
)
}
/// C# member: `P:LibreMetaverse.TokenBucket.Content`.
pub fn content(&self) -> i32 {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.TokenBucket.Content")
}
/// C# member: `P:LibreMetaverse.TokenBucket.DripRate`.
pub fn drip_rate(&self) -> i32 {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.TokenBucket.DripRate")
}
/// Setter for C# member: `P:LibreMetaverse.TokenBucket.DripRate`.
pub fn set_drip_rate(&mut self, value: i32) {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.TokenBucket.DripRate")
}
/// C# member: `P:LibreMetaverse.TokenBucket.MaxBurst`.
pub fn max_burst(&self) -> i32 {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.TokenBucket.MaxBurst")
}
/// Setter for C# member: `P:LibreMetaverse.TokenBucket.MaxBurst`.
pub fn set_max_burst(&mut self, value: i32) {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.TokenBucket.MaxBurst")
}
/// C# member: `P:LibreMetaverse.TokenBucket.Parent`.
pub fn parent(&self) -> libremetaverse_types::TokenBucket {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.TokenBucket.Parent")
}
}
pub use crate::collections::TokenBucket;
/// C# type: `T:LibreMetaverse.UUID`.
/// C# member: `F:LibreMetaverse.UUID.Zero`.

View File

@@ -3,6 +3,7 @@
extern crate self as libremetaverse_types;
mod byte_order;
mod collections;
mod color4;
pub mod compat;
mod crc32;

View File

@@ -173737,83 +173737,113 @@ fn member_29180(value: &mut libremetaverse_types::CRC32) {
fn type_2946<TKey, TValue>(_: &libremetaverse_types::CacheDictionary<TKey, TValue>) {}
// C# member: `M:LibreMetaverse.CacheDictionary`2.#ctor(System.Int32,LibreMetaverse.ICacheDictionaryRemovalStrategy{`0})`.
fn member_29181<TKey, TValue>() {
fn member_29181<TKey: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ = libremetaverse_types::CacheDictionary::<TKey, TValue>::new(argument(), argument());
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})`.
fn member_29182<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29182<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.add_with_key_value_pair(argument());
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.Add(`0,`1)`.
fn member_29183<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29183<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.add_with_t_key_t_value(argument(), argument());
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.Clear`.
fn member_29184<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29184<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.clear();
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})`.
fn member_29185<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29185<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.contains(argument());
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.ContainsKey(`0)`.
fn member_29186<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29186<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.contains_key(argument());
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)`.
fn member_29187<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29187<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.copy_to(argument(), argument());
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.GetEnumerator`.
fn member_29188<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29188<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.get_enumerator();
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})`.
fn member_29189<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29189<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.remove_with_key_value_pair(argument());
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.Remove(`0)`.
fn member_29190<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29190<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.remove_with_t_key(argument());
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.TryGetValue(`0,`1@)`.
fn member_29191<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29191<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.try_get_value(argument(), argument());
}
// C# member: `P:LibreMetaverse.CacheDictionary`2.Count`.
fn member_29192<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29192<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.count();
}
// C# member: `P:LibreMetaverse.CacheDictionary`2.IsReadOnly`.
fn member_29193<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29193<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.is_read_only();
}
// C# member: `P:LibreMetaverse.CacheDictionary`2.Item(`0)`.
fn member_29194<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29194<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.item(argument());
let _ = value.set_item(argument(), argument());
}
// C# member: `P:LibreMetaverse.CacheDictionary`2.Keys`.
fn member_29195<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29195<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.keys();
}
// C# member: `P:LibreMetaverse.CacheDictionary`2.Values`.
fn member_29196<TKey, TValue>(value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>) {
fn member_29196<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::CacheDictionary<TKey, TValue>,
) {
let _ = value.values();
}
@@ -173824,28 +173854,28 @@ fn type_2947<TKey, TValue>(
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Dispose`.
fn member_29197<TKey, TValue>(
fn member_29197<TKey: Clone, TValue: Clone>(
value: &mut libremetaverse_types::CacheDictionaryCacheDictionaryEnumerator<TKey, TValue>,
) {
let _ = value.dispose();
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.MoveNext`.
fn member_29198<TKey, TValue>(
fn member_29198<TKey: Clone, TValue: Clone>(
value: &mut libremetaverse_types::CacheDictionaryCacheDictionaryEnumerator<TKey, TValue>,
) {
let _ = value.move_next();
}
// C# member: `M:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Reset`.
fn member_29199<TKey, TValue>(
fn member_29199<TKey: Clone, TValue: Clone>(
value: &mut libremetaverse_types::CacheDictionaryCacheDictionaryEnumerator<TKey, TValue>,
) {
let _ = value.reset();
}
// C# member: `P:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator.Current`.
fn member_29200<TKey, TValue>(
fn member_29200<TKey: Clone, TValue: Clone>(
value: &mut libremetaverse_types::CacheDictionaryCacheDictionaryEnumerator<TKey, TValue>,
) {
let _ = value.current();
@@ -174087,130 +174117,130 @@ fn type_2950<TKey1, TKey2, TValue>(
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.#ctor`.
fn member_29240<TKey1, TKey2, TValue>() {
fn member_29240<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ = libremetaverse_types::DoubleDictionary::<TKey1, TKey2, TValue>::new_with_constructor();
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.#ctor(System.Int32)`.
fn member_29241<TKey1, TKey2, TValue>() {
fn member_29241<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ =
libremetaverse_types::DoubleDictionary::<TKey1, TKey2, TValue>::new_with_int32(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.Add(`0,`1,`2)`.
fn member_29242<TKey1, TKey2, TValue>(
fn member_29242<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.add(argument(), argument(), argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.Clear`.
fn member_29243<TKey1, TKey2, TValue>(
fn member_29243<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.clear();
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.ContainsKey(`0)`.
fn member_29244<TKey1, TKey2, TValue>(
fn member_29244<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.contains_key_with_t_key1(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.ContainsKey(`1)`.
fn member_29245<TKey1, TKey2, TValue>(
fn member_29245<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.contains_key_with_t_key2(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.Dispose`.
fn member_29246<TKey1, TKey2, TValue>(
fn member_29246<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.dispose();
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.FindAll(System.Predicate{`2})`.
fn member_29247<TKey1, TKey2, TValue>(
fn member_29247<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.find_all(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.FindValue(System.Predicate{`2})`.
fn member_29248<TKey1, TKey2, TValue>(
fn member_29248<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.find_value(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{System.Collections.Generic.KeyValuePair{`0,`2}})`.
fn member_29249<TKey1, TKey2, TValue>(
fn member_29249<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.for_each_with_action(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{System.Collections.Generic.KeyValuePair{`1,`2}})`.
fn member_29250<TKey1, TKey2, TValue>(
fn member_29250<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.for_each_with_action_4dc2e201(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.ForEach(System.Action{`2})`.
fn member_29251<TKey1, TKey2, TValue>(
fn member_29251<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.for_each_with_action_b56adc7f(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.Remove(`0)`.
fn member_29252<TKey1, TKey2, TValue>(
fn member_29252<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.remove_with_t_key1(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.Remove(`0,`1)`.
fn member_29253<TKey1, TKey2, TValue>(
fn member_29253<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.remove_with_t_key1_t_key2(argument(), argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.Remove(`1)`.
fn member_29254<TKey1, TKey2, TValue>(
fn member_29254<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.remove_with_t_key2(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.RemoveAll(System.Predicate{`2})`.
fn member_29255<TKey1, TKey2, TValue>(
fn member_29255<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.remove_all(argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.TryGetValue(`0,`2@)`.
fn member_29256<TKey1, TKey2, TValue>(
fn member_29256<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.try_get_value_with_t_key1_t_value(argument(), argument());
}
// C# member: `M:LibreMetaverse.DoubleDictionary`3.TryGetValue(`1,`2@)`.
fn member_29257<TKey1, TKey2, TValue>(
fn member_29257<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.try_get_value_with_t_key2_t_value(argument(), argument());
}
// C# member: `P:LibreMetaverse.DoubleDictionary`3.Count`.
fn member_29258<TKey1, TKey2, TValue>(
fn member_29258<TKey1: Clone + PartialEq, TKey2: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::DoubleDictionary<TKey1, TKey2, TValue>,
) {
let _ = value.count();
@@ -174220,37 +174250,49 @@ fn member_29258<TKey1, TKey2, TValue>(
fn type_2951<TKey>(_: &libremetaverse_types::EmptyRemovalStrategy<TKey>) {}
// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.#ctor`.
fn member_29259<TKey>() {
fn member_29259<TKey: Clone + PartialEq + Send>() {
let _ = libremetaverse_types::EmptyRemovalStrategy::<TKey>::new();
}
// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.Clear`.
fn member_29260<TKey>(value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>) {
fn member_29260<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>,
) {
let _ = value.clear();
}
// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.GetKeyToRemove`.
fn member_29261<TKey>(value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>) {
fn member_29261<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>,
) {
let _ = value.get_key_to_remove();
}
// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.Initialize(System.Int32)`.
fn member_29262<TKey>(value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>) {
fn member_29262<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>,
) {
let _ = value.initialize(argument());
}
// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.KeyAccessed(`0)`.
fn member_29263<TKey>(value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>) {
fn member_29263<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>,
) {
let _ = value.key_accessed(argument());
}
// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.KeyAdded(`0)`.
fn member_29264<TKey>(value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>) {
fn member_29264<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>,
) {
let _ = value.key_added(argument());
}
// C# member: `M:LibreMetaverse.EmptyRemovalStrategy`1.KeyRemoved(`0)`.
fn member_29265<TKey>(value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>) {
fn member_29265<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::EmptyRemovalStrategy<TKey>,
) {
let _ = value.key_removed(argument());
}
@@ -174284,82 +174326,112 @@ fn member_29269() {
fn type_2954<TKey, TValue>(_: &libremetaverse_types::ExpiringCache<TKey, TValue>) {}
// C# member: `M:LibreMetaverse.ExpiringCache`2.#ctor`.
fn member_29270<TKey, TValue>() {
fn member_29270<TKey: Clone + PartialEq, TValue: Clone>() {
let _ = libremetaverse_types::ExpiringCache::<TKey, TValue>::new();
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Add(`0,`1,System.Double)`.
fn member_29271<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29271<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.add_with_t_key_t_value_double(argument(), argument(), argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Add(`0,`1,System.TimeSpan)`.
fn member_29272<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29272<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.add_with_t_key_t_value_time_span(argument(), argument(), argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.AddOrUpdate(`0,`1,System.Double)`.
fn member_29273<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29273<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.add_or_update_with_t_key_t_value_double(argument(), argument(), argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.AddOrUpdate(`0,`1,System.TimeSpan)`.
fn member_29274<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29274<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.add_or_update_with_t_key_t_value_time_span(argument(), argument(), argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Clear`.
fn member_29275<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29275<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.clear();
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Contains(`0)`.
fn member_29276<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29276<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.contains(argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.CopyTo(System.Array,System.Int32)`.
fn member_29277<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29277<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.copy_to(argument(), argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Dispose`.
fn member_29278<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29278<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.dispose();
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Remove(`0)`.
fn member_29279<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29279<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.remove(argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.TryGetValue(`0,`1@)`.
fn member_29280<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29280<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.try_get_value(argument(), argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Update(`0,`1)`.
fn member_29281<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29281<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.update_with_t_key_t_value(argument(), argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Update(`0,`1,System.Double)`.
fn member_29282<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29282<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.update_with_t_key_t_value_double(argument(), argument(), argument());
}
// C# member: `M:LibreMetaverse.ExpiringCache`2.Update(`0,`1,System.TimeSpan)`.
fn member_29283<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29283<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.update_with_t_key_t_value_time_span(argument(), argument(), argument());
}
// C# member: `P:LibreMetaverse.ExpiringCache`2.Count`.
fn member_29284<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29284<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.count();
}
// C# member: `P:LibreMetaverse.ExpiringCache`2.Item(`0)`.
fn member_29285<TKey, TValue>(value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>) {
fn member_29285<TKey: Clone + PartialEq, TValue: Clone>(
value: &mut libremetaverse_types::ExpiringCache<TKey, TValue>,
) {
let _ = value.item(argument());
}
@@ -174813,37 +174885,49 @@ fn member_29367() {
fn type_2962<TKey>(_: &libremetaverse_types::LruRemovalStrategy<TKey>) {}
// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.#ctor`.
fn member_29368<TKey>() {
fn member_29368<TKey: Clone + PartialEq + Send>() {
let _ = libremetaverse_types::LruRemovalStrategy::<TKey>::new();
}
// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.Clear`.
fn member_29369<TKey>(value: &mut libremetaverse_types::LruRemovalStrategy<TKey>) {
fn member_29369<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::LruRemovalStrategy<TKey>,
) {
let _ = value.clear();
}
// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.GetKeyToRemove`.
fn member_29370<TKey>(value: &mut libremetaverse_types::LruRemovalStrategy<TKey>) {
fn member_29370<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::LruRemovalStrategy<TKey>,
) {
let _ = value.get_key_to_remove();
}
// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.Initialize(System.Int32)`.
fn member_29371<TKey>(value: &mut libremetaverse_types::LruRemovalStrategy<TKey>) {
fn member_29371<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::LruRemovalStrategy<TKey>,
) {
let _ = value.initialize(argument());
}
// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.KeyAccessed(`0)`.
fn member_29372<TKey>(value: &mut libremetaverse_types::LruRemovalStrategy<TKey>) {
fn member_29372<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::LruRemovalStrategy<TKey>,
) {
let _ = value.key_accessed(argument());
}
// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.KeyAdded(`0)`.
fn member_29373<TKey>(value: &mut libremetaverse_types::LruRemovalStrategy<TKey>) {
fn member_29373<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::LruRemovalStrategy<TKey>,
) {
let _ = value.key_added(argument());
}
// C# member: `M:LibreMetaverse.LruRemovalStrategy`1.KeyRemoved(`0)`.
fn member_29374<TKey>(value: &mut libremetaverse_types::LruRemovalStrategy<TKey>) {
fn member_29374<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::LruRemovalStrategy<TKey>,
) {
let _ = value.key_removed(argument());
}
@@ -175252,37 +175336,49 @@ fn member_29452(value: &mut libremetaverse_types::Matrix4) {
fn type_2965<TKey>(_: &libremetaverse_types::MruRemovalStrategy<TKey>) {}
// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.#ctor`.
fn member_29453<TKey>() {
fn member_29453<TKey: Clone + PartialEq + Send>() {
let _ = libremetaverse_types::MruRemovalStrategy::<TKey>::new();
}
// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.Clear`.
fn member_29454<TKey>(value: &mut libremetaverse_types::MruRemovalStrategy<TKey>) {
fn member_29454<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::MruRemovalStrategy<TKey>,
) {
let _ = value.clear();
}
// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.GetKeyToRemove`.
fn member_29455<TKey>(value: &mut libremetaverse_types::MruRemovalStrategy<TKey>) {
fn member_29455<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::MruRemovalStrategy<TKey>,
) {
let _ = value.get_key_to_remove();
}
// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.Initialize(System.Int32)`.
fn member_29456<TKey>(value: &mut libremetaverse_types::MruRemovalStrategy<TKey>) {
fn member_29456<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::MruRemovalStrategy<TKey>,
) {
let _ = value.initialize(argument());
}
// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.KeyAccessed(`0)`.
fn member_29457<TKey>(value: &mut libremetaverse_types::MruRemovalStrategy<TKey>) {
fn member_29457<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::MruRemovalStrategy<TKey>,
) {
let _ = value.key_accessed(argument());
}
// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.KeyAdded(`0)`.
fn member_29458<TKey>(value: &mut libremetaverse_types::MruRemovalStrategy<TKey>) {
fn member_29458<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::MruRemovalStrategy<TKey>,
) {
let _ = value.key_added(argument());
}
// C# member: `M:LibreMetaverse.MruRemovalStrategy`1.KeyRemoved(`0)`.
fn member_29459<TKey>(value: &mut libremetaverse_types::MruRemovalStrategy<TKey>) {
fn member_29459<TKey: Clone + PartialEq + Send>(
value: &mut libremetaverse_types::MruRemovalStrategy<TKey>,
) {
let _ = value.key_removed(argument());
}
@@ -175290,24 +175386,24 @@ fn member_29459<TKey>(value: &mut libremetaverse_types::MruRemovalStrategy<TKey>
fn type_2966<TKey, TValue>(_: &libremetaverse_types::MultiValueDictionary<TKey, TValue>) {}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor`.
fn member_29460<TKey, TValue>() {
fn member_29460<TKey: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::new_with_constructor();
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}})`.
fn member_29461<TKey, TValue>() {
fn member_29461<TKey: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::new_with_i_enumerable(
argument(),
);
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0})`.
fn member_29462<TKey, TValue>() {
fn member_29462<TKey: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::new_with_i_enumerable_i_equality_comparer(argument(), argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})`.
fn member_29463<TKey, TValue>() {
fn member_29463<TKey: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ =
libremetaverse_types::MultiValueDictionary::<TKey, TValue>::new_with_i_equality_comparer(
argument(),
@@ -175315,52 +175411,52 @@ fn member_29463<TKey, TValue>() {
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Int32)`.
fn member_29464<TKey, TValue>() {
fn member_29464<TKey: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::new_with_int32(argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})`.
fn member_29465<TKey, TValue>() {
fn member_29465<TKey: Clone + PartialEq, TValue: Clone + PartialEq>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::new_with_int32_i_equality_comparer(argument(), argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Add(`0,`1)`.
fn member_29466<TKey, TValue>(
fn member_29466<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.add(argument(), argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.AddRange(`0,System.Collections.Generic.IEnumerable{`1})`.
fn member_29467<TKey, TValue>(
fn member_29467<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.add_range(argument(), argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Clear`.
fn member_29468<TKey, TValue>(
fn member_29468<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.clear();
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Contains(`0,`1)`.
fn member_29469<TKey, TValue>(
fn member_29469<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.contains(argument(), argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.ContainsKey(`0)`.
fn member_29470<TKey, TValue>(
fn member_29470<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.contains_key(argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.ContainsValue(`1)`.
fn member_29471<TKey, TValue>(
fn member_29471<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.contains_value(argument());
@@ -175368,8 +175464,8 @@ fn member_29471<TKey, TValue>(
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1`.
fn member_29472<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_method::<
@@ -175379,8 +175475,8 @@ fn member_29472<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}})`.
fn member_29473<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_i_enumerable::<
@@ -175390,8 +175486,8 @@ fn member_29473<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0})`.
fn member_29474<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_i_enumerable_i_equality_comparer::<TValueCollection>(argument(), argument());
@@ -175399,8 +175495,8 @@ fn member_29474<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})`.
fn member_29475<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_i_enumerable_i_equality_comparer_func::<TValueCollection>(argument(), argument(), argument());
@@ -175408,8 +175504,8 @@ fn member_29475<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,System.Collections.Generic.IReadOnlyCollection{`1}}},System.Func{``0})`.
fn member_29476<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>() {
let _ =
@@ -175420,8 +175516,8 @@ fn member_29476<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEqualityComparer{`0})`.
fn member_29477<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>() {
let _ =
@@ -175432,8 +175528,8 @@ fn member_29477<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})`.
fn member_29478<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_i_equality_comparer_func::<TValueCollection>(argument(), argument());
@@ -175441,8 +175537,8 @@ fn member_29478<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Func{``0})`.
fn member_29479<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_func::<
@@ -175452,8 +175548,8 @@ fn member_29479<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32)`.
fn member_29480<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_int32::<
@@ -175463,8 +175559,8 @@ fn member_29480<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Collections.Generic.IEqualityComparer{`0})`.
fn member_29481<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue> + Default,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_int32_i_equality_comparer::<TValueCollection>(argument(), argument());
@@ -175472,8 +175568,8 @@ fn member_29481<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Collections.Generic.IEqualityComparer{`0},System.Func{``0})`.
fn member_29482<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_int32_i_equality_comparer_func::<TValueCollection>(argument(), argument(), argument());
@@ -175481,8 +175577,8 @@ fn member_29482<
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Create``1(System.Int32,System.Func{``0})`.
fn member_29483<
TKey,
TValue,
TKey: Clone + PartialEq,
TValue: Clone + PartialEq,
TValueCollection: libremetaverse_types::compat::Collection<TValue>,
>() {
let _ = libremetaverse_types::MultiValueDictionary::<TKey, TValue>::create_with_int32_func::<
@@ -175491,56 +175587,56 @@ fn member_29483<
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.GetEnumerator`.
fn member_29484<TKey, TValue>(
fn member_29484<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.get_enumerator();
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Remove(`0)`.
fn member_29485<TKey, TValue>(
fn member_29485<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.remove_with_t_key(argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.Remove(`0,`1)`.
fn member_29486<TKey, TValue>(
fn member_29486<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.remove_with_t_key_t_value(argument(), argument());
}
// C# member: `M:LibreMetaverse.MultiValueDictionary`2.TryGetValue(`0,System.Collections.Generic.IReadOnlyCollection{`1}@)`.
fn member_29487<TKey, TValue>(
fn member_29487<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.try_get_value(argument(), argument());
}
// C# member: `P:LibreMetaverse.MultiValueDictionary`2.Count`.
fn member_29488<TKey, TValue>(
fn member_29488<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.count();
}
// C# member: `P:LibreMetaverse.MultiValueDictionary`2.Item(`0)`.
fn member_29489<TKey, TValue>(
fn member_29489<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.item(argument());
}
// C# member: `P:LibreMetaverse.MultiValueDictionary`2.Keys`.
fn member_29490<TKey, TValue>(
fn member_29490<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.keys();
}
// C# member: `P:LibreMetaverse.MultiValueDictionary`2.Values`.
fn member_29491<TKey, TValue>(
fn member_29491<TKey: Clone + PartialEq, TValue: Clone + PartialEq>(
value: &mut libremetaverse_types::MultiValueDictionary<TKey, TValue>,
) {
let _ = value.values();

View File

@@ -20,5 +20,5 @@
"LibreMetaverse.Tests/TypeTests.cs::TypeTests.VectorCasting::test",
"LibreMetaverse.Tests/UtilsConversionsTests.cs::UtilsConversionsTests.StringToBytes::test"
],
"support_passes": 56
"support_passes": 62
}

View File

@@ -38,13 +38,23 @@ TARGETS = {
# implementations. The generated module keeps catalog markers and re-exports
# the hand-written type so coverage remains deterministic.
NATIVE_TYPES = {
"T:LibreMetaverse.CacheDictionary`2": "crate::collections::CacheDictionary",
"T:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator": "crate::collections::CacheDictionaryCacheDictionaryEnumerator",
"T:LibreMetaverse.Color4": "crate::color4::Color4",
"T:LibreMetaverse.CRC32": "crate::crc32::CRC32",
"T:LibreMetaverse.DoubleDictionary`3": "crate::collections::DoubleDictionary",
"T:LibreMetaverse.EmptyRemovalStrategy`1": "crate::collections::EmptyRemovalStrategy",
"T:LibreMetaverse.EnumInfoAttribute": "crate::enum_compat::EnumInfoAttribute",
"T:LibreMetaverse.EnumInfoExtensions": "crate::enum_compat::EnumInfoExtensions",
"T:LibreMetaverse.ExpiringCache`2": "crate::collections::ExpiringCache",
"T:LibreMetaverse.ICacheDictionaryRemovalStrategy`1": "crate::collections::ICacheDictionaryRemovalStrategy",
"T:LibreMetaverse.LruRemovalStrategy`1": "crate::collections::LruRemovalStrategy",
"T:LibreMetaverse.Matrix4": "crate::geometry::Matrix4",
"T:LibreMetaverse.MruRemovalStrategy`1": "crate::collections::MruRemovalStrategy",
"T:LibreMetaverse.MultiValueDictionary`2": "crate::collections::MultiValueDictionary",
"T:LibreMetaverse.Quaternion": "crate::geometry::Quaternion",
"T:LibreMetaverse.Ray": "crate::vectors::Ray",
"T:LibreMetaverse.TokenBucket": "crate::collections::TokenBucket",
"T:LibreMetaverse.UUID": "crate::uuid::UUID",
"T:LibreMetaverse.Vector2": "crate::vectors::Vector2",
"T:LibreMetaverse.Vector3": "crate::vectors::Vector3",
@@ -64,6 +74,33 @@ NATIVE_MEMBER_BODIES = {
"crate::byte_order::write_double_little_endian(dest, pos, value)",
}
NATIVE_OWNER_BOUNDS = {
"T:LibreMetaverse.CacheDictionary`2": {
"TKey": "TKey: Clone + PartialEq",
"TValue": "TValue: Clone + PartialEq",
},
"T:LibreMetaverse.CacheDictionary`2.CacheDictionaryEnumerator": {
"TKey": "TKey: Clone",
"TValue": "TValue: Clone",
},
"T:LibreMetaverse.DoubleDictionary`3": {
"TKey1": "TKey1: Clone + PartialEq",
"TKey2": "TKey2: Clone + PartialEq",
"TValue": "TValue: Clone + PartialEq",
},
"T:LibreMetaverse.EmptyRemovalStrategy`1": {"TKey": "TKey: Clone + PartialEq + Send"},
"T:LibreMetaverse.ExpiringCache`2": {
"TKey": "TKey: Clone + PartialEq",
"TValue": "TValue: Clone",
},
"T:LibreMetaverse.LruRemovalStrategy`1": {"TKey": "TKey: Clone + PartialEq + Send"},
"T:LibreMetaverse.MruRemovalStrategy`1": {"TKey": "TKey: Clone + PartialEq + Send"},
"T:LibreMetaverse.MultiValueDictionary`2": {
"TKey": "TKey: Clone + PartialEq",
"TValue": "TValue: Clone + PartialEq",
},
}
MAIN_TARGET = ROOT / "crates/libremetaverse/src/generated.rs"
WIRE_NAMESPACES = (
"LibreMetaverse.Assets",
@@ -455,7 +492,11 @@ def render_compile_fixture(
member_index += 1
row = member_rows[member["doc_id"]]
method_names = generic_names(member)
parameters = [*owner_names, *generic_declarations(member, mapper, owner_names)]
owner_bounds = NATIVE_OWNER_BOUNDS.get(item["doc_id"], {})
parameters = [
*(owner_bounds.get(name, name) for name in owner_names),
*generic_declarations(member, mapper, owner_names),
]
if member["doc_id"] == "M:LibreMetaverse.Utils.EnumTryParse``1(System.String,``0@)":
parameters = [
*owner_names,
@@ -858,6 +899,12 @@ def coverage_report(catalog: dict, coverage: dict[str, tuple[int, int, bool]]) -
if item["doc_id"] in native_type_ids or member["doc_id"] in NATIVE_MEMBER_BODIES
}
if native_type_ids or native_member_ids:
if (len(native_type_ids), len(native_member_ids)) == (types, members):
status = (
f"native implementation: {len(native_type_ids):,} types / "
f"{len(native_member_ids):,} members; no generated shims remain"
)
else:
status = (
f"native implementation: {len(native_type_ids):,} types / "
f"{len(native_member_ids):,} members; remaining surface is callable failure-only shims"

View File

@@ -189,10 +189,22 @@ MEMBER_TYPE_OVERRIDES = {
),
}
MEMBER_SIGNATURE_OVERRIDES = {
"M:LibreMetaverse.CacheDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)": (
"pub fn copy_to(&self, array: &mut [(TKey, Option<TValue>)], array_index: i32) -> Result<(), crate::Error>",
"shared_self,mutable_borrow,owned",
),
"M:LibreMetaverse.Utils.DoubleToBytes(System.Double,System.Byte[],System.Int32)": (
"pub fn double_to_bytes_with_double_bytes_int32(value: f64, dest: &mut [u8], pos: i32) -> Result<(), crate::Error>",
"owned,mutable_borrow,owned",
),
"M:LibreMetaverse.ExpiringCache`2.CopyTo(System.Array,System.Int32)": (
"pub fn copy_to(&self, array: &mut [(TKey, Option<TValue>)], start_index: i32) -> Result<(), crate::Error>",
"shared_self,mutable_borrow,owned",
),
"P:LibreMetaverse.ExpiringCache`2.Item(`0)": (
"pub fn item(&self, key: TKey) -> Option<TValue>",
"shared_self,owned",
),
"M:LibreMetaverse.Utils.EnumTryParse``1(System.String,``0@)": (
"pub fn enum_try_parse<T: crate::EnumValueMetadata>(str_type: String, result: &mut Option<T>) -> Result<bool, crate::Error>",
"owned,mutable_borrow",