// @generated by tools/generate_api_shims.py; do not edit by hand.
#![allow(clippy::missing_errors_doc)]
#![allow(clippy::must_use_candidate)]
#![allow(clippy::all, clippy::pedantic, dead_code, unused_variables)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]

/// C# type: `T:LibreMetaverse.AssetType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i8)]
pub enum AssetType {
    /// C# member: `F:LibreMetaverse.AssetType.Animation`.
    Animation = 20,
    /// C# member: `F:LibreMetaverse.AssetType.Bodypart`.
    Bodypart = 13,
    /// C# member: `F:LibreMetaverse.AssetType.CallingCard`.
    CallingCard = 2,
    /// C# member: `F:LibreMetaverse.AssetType.Clothing`.
    Clothing = 5,
    /// C# member: `F:LibreMetaverse.AssetType.Folder`.
    Folder = 8,
    /// C# member: `F:LibreMetaverse.AssetType.Gesture`.
    Gesture = 21,
    /// C# member: `F:LibreMetaverse.AssetType.ImageJPEG`.
    ImageJPEG = 19,
    /// C# member: `F:LibreMetaverse.AssetType.ImageTGA`.
    ImageTGA = 18,
    /// C# member: `F:LibreMetaverse.AssetType.LSLBytecode`.
    LSLBytecode = 11,
    /// C# member: `F:LibreMetaverse.AssetType.LSLText`.
    LSLText = 10,
    /// C# member: `F:LibreMetaverse.AssetType.Landmark`.
    Landmark = 3,
    /// C# member: `F:LibreMetaverse.AssetType.Link`.
    Link = 24,
    /// C# member: `F:LibreMetaverse.AssetType.LinkFolder`.
    LinkFolder = 25,
    /// C# member: `F:LibreMetaverse.AssetType.Material`.
    Material = 57,
    /// C# member: `F:LibreMetaverse.AssetType.Mesh`.
    Mesh = 49,
    /// C# member: `F:LibreMetaverse.AssetType.Notecard`.
    Notecard = 7,
    /// C# member: `F:LibreMetaverse.AssetType.Object`.
    Object = 6,
    /// C# member: `F:LibreMetaverse.AssetType.Person`.
    Person = 45,
    /// C# member: `F:LibreMetaverse.AssetType.Script`.
    Script = 4,
    /// C# member: `F:LibreMetaverse.AssetType.Settings`.
    Settings = 56,
    /// C# member: `F:LibreMetaverse.AssetType.Simstate`.
    Simstate = 22,
    /// C# member: `F:LibreMetaverse.AssetType.Sound`.
    Sound = 1,
    /// C# member: `F:LibreMetaverse.AssetType.SoundWAV`.
    SoundWAV = 17,
    /// C# member: `F:LibreMetaverse.AssetType.Texture`.
    Texture = 0,
    /// C# member: `F:LibreMetaverse.AssetType.TextureTGA`.
    TextureTGA = 12,
    /// C# member: `F:LibreMetaverse.AssetType.Unknown`.
    Unknown = -1,
    /// C# member: `F:LibreMetaverse.AssetType.Widget`.
    Widget = 40,
}

/// C# type: `T:LibreMetaverse.AttachmentPoint`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum AttachmentPoint {
    /// C# member: `F:LibreMetaverse.AttachmentPoint.AltLeftEar`.
    AltLeftEar = 48,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.AltLeftEye`.
    AltLeftEye = 50,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.AltRightEar`.
    AltRightEar = 49,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.AltRightEye`.
    AltRightEye = 51,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Chest`.
    Chest = 1,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Chin`.
    Chin = 12,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Default`.
    Default = 0,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Groin`.
    Groin = 53,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.HUDBottom`.
    HUDBottom = 37,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.HUDBottomLeft`.
    HUDBottomLeft = 36,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.HUDBottomRight`.
    HUDBottomRight = 38,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.HUDCenter`.
    HUDCenter = 35,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.HUDCenter2`.
    HUDCenter2 = 31,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.HUDTop`.
    HUDTop = 33,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.HUDTopLeft`.
    HUDTopLeft = 34,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.HUDTopRight`.
    HUDTopRight = 32,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Jaw`.
    Jaw = 47,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftEar`.
    LeftEar = 13,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftEyeball`.
    LeftEyeball = 15,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftFoot`.
    LeftFoot = 7,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftForearm`.
    LeftForearm = 21,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftHand`.
    LeftHand = 5,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftHandRing`.
    LeftHandRing = 41,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftHindFoot`.
    LeftHindFoot = 54,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftHip`.
    LeftHip = 25,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftLowerLeg`.
    LeftLowerLeg = 27,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftPec`.
    LeftPec = 29,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftShoulder`.
    LeftShoulder = 3,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftUpperArm`.
    LeftUpperArm = 20,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftUpperLeg`.
    LeftUpperLeg = 26,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.LeftWing`.
    LeftWing = 45,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Mouth`.
    Mouth = 11,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Neck`.
    Neck = 39,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Nose`.
    Nose = 17,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Pelvis`.
    Pelvis = 10,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightEar`.
    RightEar = 14,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightEyeball`.
    RightEyeball = 16,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightFoot`.
    RightFoot = 8,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightForearm`.
    RightForearm = 19,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightHand`.
    RightHand = 6,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightHandRing`.
    RightHandRing = 42,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightHindFoot`.
    RightHindFoot = 55,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightHip`.
    RightHip = 22,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightLowerLeg`.
    RightLowerLeg = 24,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightPec`.
    RightPec = 30,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightShoulder`.
    RightShoulder = 4,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightUpperArm`.
    RightUpperArm = 18,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightUpperLeg`.
    RightUpperLeg = 23,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.RightWing`.
    RightWing = 46,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Root`.
    Root = 40,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Skull`.
    Skull = 2,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Spine`.
    Spine = 9,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Stomach`.
    Stomach = 28,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.TailBase`.
    TailBase = 43,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.TailTip`.
    TailTip = 44,
    /// C# member: `F:LibreMetaverse.AttachmentPoint.Tongue`.
    Tongue = 52,
}

/// C# type: `T:LibreMetaverse.CRC32`.
pub struct CRC32 {
    /// C# member: `F:LibreMetaverse.CRC32.CRC`.
    pub crc: u32,
}
impl CRC32 {
    /// C# member: `M:LibreMetaverse.CRC32.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.CRC32.#ctor")
    }
    /// C# member: `M:LibreMetaverse.CRC32.Update(System.Byte)`.
    pub fn update_with_byte(&self, value: u8) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.CRC32.Update(System.Byte)")
    }
    /// C# member: `M:LibreMetaverse.CRC32.Update(System.Byte[],System.Int32,System.Int32)`.
    pub fn update_with_bytes_int32_int32(
        &self,
        value: Vec<u8>,
        pos: i32,
        length: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.CRC32.Update(System.Byte[],System.Int32,System.Int32)",
        )
    }
}

/// 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")
    }
}

/// 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"
        )
    }
}

/// C# type: `T:LibreMetaverse.ClickAction`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum ClickAction {
    /// C# member: `F:LibreMetaverse.ClickAction.Buy`.
    Buy = 2,
    /// C# member: `F:LibreMetaverse.ClickAction.OpenMedia`.
    OpenMedia = 6,
    /// C# member: `F:LibreMetaverse.ClickAction.OpenTask`.
    OpenTask = 4,
    /// C# member: `F:LibreMetaverse.ClickAction.Pay`.
    Pay = 3,
    /// C# member: `F:LibreMetaverse.ClickAction.PlayMedia`.
    PlayMedia = 5,
    /// C# member: `F:LibreMetaverse.ClickAction.Sit`.
    Sit = 1,
    /// C# member: `F:LibreMetaverse.ClickAction.Touch`.
    Touch = 0,
}

/// C# type: `T:LibreMetaverse.Color4`.
pub struct Color4 {
    /// C# member: `F:LibreMetaverse.Color4.A`.
    pub a: f32,
    /// C# member: `F:LibreMetaverse.Color4.B`.
    pub b: f32,
    /// C# member: `F:LibreMetaverse.Color4.G`.
    pub g: f32,
    /// C# member: `F:LibreMetaverse.Color4.R`.
    pub r: f32,
}
impl Color4 {
    /// C# member: `F:LibreMetaverse.Color4.Black`.
    pub fn black() -> libremetaverse_types::Color4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Color4.Black")
    }
    /// C# member: `F:LibreMetaverse.Color4.White`.
    pub fn white() -> libremetaverse_types::Color4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Color4.White")
    }
    /// C# member: `M:LibreMetaverse.Color4.#ctor(System.Byte,System.Byte,System.Byte,System.Byte)`.
    pub fn new_with_byte_byte_byte_byte(r: u8, g: u8, b: u8, a: u8) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.#ctor(System.Byte,System.Byte,System.Byte,System.Byte)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.#ctor(System.Byte[],System.Int32,System.Boolean)`.
    pub fn new_with_bytes_int32_boolean(
        byte_array: Vec<u8>,
        pos: i32,
        inverted: bool,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.#ctor(System.Byte[],System.Int32,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.#ctor(System.Byte[],System.Int32,System.Boolean,System.Boolean)`.
    pub fn new_with_bytes_int32_boolean_boolean(
        byte_array: Vec<u8>,
        pos: i32,
        inverted: bool,
        alpha_inverted: bool,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.#ctor(System.Byte[],System.Int32,System.Boolean,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.#ctor(System.Single,System.Single,System.Single,System.Single)`.
    pub fn new_with_single_single_single_single(
        r: f32,
        g: f32,
        b: f32,
        a: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.#ctor(System.Single,System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.CompareTo(LibreMetaverse.Color4)`.
    pub fn compare_to(&self, color: libremetaverse_types::Color4) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.CompareTo(LibreMetaverse.Color4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.Equals(LibreMetaverse.Color4)`.
    pub fn equals_with_color4(&self, other: libremetaverse_types::Color4) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Color4.Equals(LibreMetaverse.Color4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.Equals(System.Object)`.
    pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Color4.Equals(System.Object)")
    }
    /// C# member: `M:LibreMetaverse.Color4.FromBytes(System.Byte[],System.Int32,System.Boolean)`.
    pub fn from_bytes_with_bytes_int32_boolean(
        byte_array: Vec<u8>,
        pos: i32,
        inverted: bool,
    ) -> Result<libremetaverse_types::Color4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.FromBytes(System.Byte[],System.Int32,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.FromBytes(System.Byte[],System.Int32,System.Boolean,System.Boolean)`.
    pub fn from_bytes_with_bytes_int32_boolean_boolean(
        byte_array: Vec<u8>,
        pos: i32,
        inverted: bool,
        alpha_inverted: bool,
    ) -> Result<libremetaverse_types::Color4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.FromBytes(System.Byte[],System.Int32,System.Boolean,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.FromHSV(System.Double,System.Double,System.Double)`.
    pub fn from_hsv(
        hue: f64,
        saturation: f64,
        value: f64,
    ) -> Result<libremetaverse_types::Color4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.FromHSV(System.Double,System.Double,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.GetBytes`.
    pub fn get_bytes_with_method(&self) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Color4.GetBytes")
    }
    /// C# member: `M:LibreMetaverse.Color4.GetBytes(System.Boolean)`.
    pub fn get_bytes_with_boolean(&self, inverted: bool) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Color4.GetBytes(System.Boolean)")
    }
    /// C# member: `M:LibreMetaverse.Color4.GetFloatBytes`.
    pub fn get_float_bytes(&self) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Color4.GetFloatBytes")
    }
    /// C# member: `M:LibreMetaverse.Color4.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Color4.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.Color4.GetHue`.
    pub fn get_hue(&self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Color4.GetHue")
    }
    /// C# member: `M:LibreMetaverse.Color4.Lerp(LibreMetaverse.Color4,LibreMetaverse.Color4,System.Single)`.
    pub fn lerp(
        value1: libremetaverse_types::Color4,
        value2: libremetaverse_types::Color4,
        amount: f32,
    ) -> Result<libremetaverse_types::Color4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.Lerp(LibreMetaverse.Color4,LibreMetaverse.Color4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.ToBytes(System.Byte[],System.Int32)`.
    pub fn to_bytes_with_bytes_int32(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.ToBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.ToBytes(System.Byte[],System.Int32,System.Boolean)`.
    pub fn to_bytes_with_bytes_int32_boolean(
        &self,
        dest: Vec<u8>,
        pos: i32,
        inverted: bool,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.ToBytes(System.Byte[],System.Int32,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.ToFloatBytes(System.Byte[],System.Int32)`.
    pub fn to_float_bytes(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Color4.ToFloatBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.ToRGBString`.
    pub fn to_rgb_string(&self) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Color4.ToRGBString")
    }
    /// C# member: `M:LibreMetaverse.Color4.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Color4.ToString")
    }
    /// C# member: `M:LibreMetaverse.Color4.op_Addition(LibreMetaverse.Color4,LibreMetaverse.Color4)`.
    pub fn add(
        lhs: libremetaverse_types::Color4,
        rhs: libremetaverse_types::Color4,
    ) -> libremetaverse_types::Color4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Color4.op_Addition(LibreMetaverse.Color4,LibreMetaverse.Color4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.op_Equality(LibreMetaverse.Color4,LibreMetaverse.Color4)`.
    pub fn eq(lhs: libremetaverse_types::Color4, rhs: libremetaverse_types::Color4) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Color4.op_Equality(LibreMetaverse.Color4,LibreMetaverse.Color4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.op_Inequality(LibreMetaverse.Color4,LibreMetaverse.Color4)`.
    pub fn ne(lhs: libremetaverse_types::Color4, rhs: libremetaverse_types::Color4) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Color4.op_Inequality(LibreMetaverse.Color4,LibreMetaverse.Color4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.op_Multiply(LibreMetaverse.Color4,LibreMetaverse.Color4)`.
    pub fn mul(
        lhs: libremetaverse_types::Color4,
        rhs: libremetaverse_types::Color4,
    ) -> libremetaverse_types::Color4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Color4.op_Multiply(LibreMetaverse.Color4,LibreMetaverse.Color4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Color4.op_Subtraction(LibreMetaverse.Color4,LibreMetaverse.Color4)`.
    pub fn sub(
        lhs: libremetaverse_types::Color4,
        rhs: libremetaverse_types::Color4,
    ) -> libremetaverse_types::Color4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Color4.op_Subtraction(LibreMetaverse.Color4,LibreMetaverse.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")
    }
}

/// 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>
{
}

/// C# type: `T:LibreMetaverse.EnumInfoAttribute`.
pub struct EnumInfoAttribute {
    /// C# member: `F:LibreMetaverse.EnumInfoAttribute.Text`.
    pub text: String,
}
impl EnumInfoAttribute {
    /// C# member: `M:LibreMetaverse.EnumInfoAttribute.#ctor`.
    pub fn new_with_constructor() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.EnumInfoAttribute.#ctor")
    }
    /// C# member: `M:LibreMetaverse.EnumInfoAttribute.#ctor(System.String)`.
    pub fn new_with_string(text: String) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.EnumInfoAttribute.#ctor(System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.EnumInfoExtensions`.
pub struct EnumInfoExtensions;
impl EnumInfoExtensions {
    /// C# member: `M:LibreMetaverse.EnumInfoExtensions.GetText(System.Enum)`.
    pub fn get_text(
        value: libremetaverse_types::compat::EnumValue,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.EnumInfoExtensions.GetText(System.Enum)",
        )
    }
}

/// 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)")
    }
}

/// C# type: `T:LibreMetaverse.ExtraParamType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(transparent)]
pub struct ExtraParamType(pub u16);
impl ExtraParamType {
    /// C# member: `F:LibreMetaverse.ExtraParamType.ExtendedMesh`.
    pub const EXTENDED_MESH: Self = Self(112);
    /// C# member: `F:LibreMetaverse.ExtraParamType.Flexible`.
    pub const FLEXIBLE: Self = Self(16);
    /// C# member: `F:LibreMetaverse.ExtraParamType.Light`.
    pub const LIGHT: Self = Self(32);
    /// C# member: `F:LibreMetaverse.ExtraParamType.LightImage`.
    pub const LIGHT_IMAGE: Self = Self(64);
    /// C# member: `F:LibreMetaverse.ExtraParamType.Mesh`.
    pub const MESH: Self = Self(96);
    /// C# member: `F:LibreMetaverse.ExtraParamType.ReflectionProbe`.
    pub const REFLECTION_PROBE: Self = Self(144);
    /// C# member: `F:LibreMetaverse.ExtraParamType.RenderMaterial`.
    pub const RENDER_MATERIAL: Self = Self(128);
    /// C# member: `F:LibreMetaverse.ExtraParamType.Sculpt`.
    pub const SCULPT: Self = Self(48);
}

/// C# type: `T:LibreMetaverse.FaceType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u16)]
pub enum FaceType {
    /// C# member: `F:LibreMetaverse.FaceType.InnerSide`.
    InnerSide = 4,
    /// C# member: `F:LibreMetaverse.FaceType.OuterSide0`.
    OuterSide0 = 32,
    /// C# member: `F:LibreMetaverse.FaceType.OuterSide1`.
    OuterSide1 = 64,
    /// C# member: `F:LibreMetaverse.FaceType.OuterSide2`.
    OuterSide2 = 128,
    /// C# member: `F:LibreMetaverse.FaceType.OuterSide3`.
    OuterSide3 = 256,
    /// C# member: `F:LibreMetaverse.FaceType.PathBegin`.
    PathBegin = 1,
    /// C# member: `F:LibreMetaverse.FaceType.PathEnd`.
    PathEnd = 2,
    /// C# member: `F:LibreMetaverse.FaceType.ProfileBegin`.
    ProfileBegin = 8,
    /// C# member: `F:LibreMetaverse.FaceType.ProfileEnd`.
    ProfileEnd = 16,
}

/// C# type: `T:LibreMetaverse.FolderType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i8)]
pub enum FolderType {
    /// C# member: `F:LibreMetaverse.FolderType.Animation`.
    Animation = 20,
    /// C# member: `F:LibreMetaverse.FolderType.BasicRoot`.
    BasicRoot = 52,
    /// C# member: `F:LibreMetaverse.FolderType.BodyPart`.
    BodyPart = 13,
    /// C# member: `F:LibreMetaverse.FolderType.CallingCard`.
    CallingCard = 2,
    /// C# member: `F:LibreMetaverse.FolderType.Clothing`.
    Clothing = 5,
    /// C# member: `F:LibreMetaverse.FolderType.CurrentOutfit`.
    CurrentOutfit = 46,
    /// C# member: `F:LibreMetaverse.FolderType.EnsembleEnd`.
    EnsembleEnd = 45,
    /// C# member: `F:LibreMetaverse.FolderType.EnsembleStart`.
    EnsembleStart = 26,
    /// C# member: `F:LibreMetaverse.FolderType.Favorites`.
    Favorites = 23,
    /// C# member: `F:LibreMetaverse.FolderType.Gesture`.
    Gesture = 21,
    /// C# member: `F:LibreMetaverse.FolderType.Inbox`.
    Inbox = 50,
    /// C# member: `F:LibreMetaverse.FolderType.LSLText`.
    LSLText = 10,
    /// C# member: `F:LibreMetaverse.FolderType.Landmark`.
    Landmark = 3,
    /// C# member: `F:LibreMetaverse.FolderType.LostAndFound`.
    LostAndFound = 16,
    /// C# member: `F:LibreMetaverse.FolderType.MarketplaceListings`.
    MarketplaceListings = 53,
    /// C# member: `F:LibreMetaverse.FolderType.MarketplaceStock`.
    MarketplaceStock = 54,
    /// C# member: `F:LibreMetaverse.FolderType.MarketplaceVersion`.
    MarketplaceVersion = 55,
    /// C# member: `F:LibreMetaverse.FolderType.Material`.
    Material = 57,
    /// C# member: `F:LibreMetaverse.FolderType.Mesh`.
    Mesh = 49,
    /// C# member: `F:LibreMetaverse.FolderType.MyOutfits`.
    MyOutfits = 48,
    /// C# member: `F:LibreMetaverse.FolderType.None`.
    None = -1,
    /// C# member: `F:LibreMetaverse.FolderType.Notecard`.
    Notecard = 7,
    /// C# member: `F:LibreMetaverse.FolderType.Object`.
    Object = 6,
    /// C# member: `F:LibreMetaverse.FolderType.OldRoot`.
    OldRoot = 9,
    /// C# member: `F:LibreMetaverse.FolderType.Outbox`.
    Outbox = 51,
    /// C# member: `F:LibreMetaverse.FolderType.Outfit`.
    Outfit = 47,
    /// C# member: `F:LibreMetaverse.FolderType.Root`.
    Root = 8,
    /// C# member: `F:LibreMetaverse.FolderType.Settings`.
    Settings = 56,
    /// C# member: `F:LibreMetaverse.FolderType.Snapshot`.
    Snapshot = 15,
    /// C# member: `F:LibreMetaverse.FolderType.Sound`.
    Sound = 1,
    /// C# member: `F:LibreMetaverse.FolderType.Suitcase`.
    Suitcase = 100,
    /// C# member: `F:LibreMetaverse.FolderType.Texture`.
    Texture = 0,
    /// C# member: `F:LibreMetaverse.FolderType.Trash`.
    Trash = 14,
}

/// C# type: `T:LibreMetaverse.HoleType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(transparent)]
pub struct HoleType(pub u8);
#[allow(non_upper_case_globals)]
impl HoleType {
    /// C# member: `F:LibreMetaverse.HoleType.Circle`.
    pub const Circle: Self = Self(16);
    /// C# member: `F:LibreMetaverse.HoleType.Same`.
    pub const Same: Self = Self(0);
    /// C# member: `F:LibreMetaverse.HoleType.Square`.
    pub const Square: Self = Self(32);
    /// C# member: `F:LibreMetaverse.HoleType.Triangle`.
    pub const Triangle: Self = Self(48);
}

/// 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)",
        )
    }
}

/// C# type: `T:LibreMetaverse.InventoryType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(transparent)]
pub struct InventoryType(pub i8);
impl InventoryType {
    /// C# member: `F:LibreMetaverse.InventoryType.Animation`.
    pub const ANIMATION: Self = Self(19);
    /// C# member: `F:LibreMetaverse.InventoryType.Attachment`.
    pub const ATTACHMENT: Self = Self(17);
    /// C# member: `F:LibreMetaverse.InventoryType.CallingCard`.
    pub const CALLING_CARD: Self = Self(2);
    /// C# member: `F:LibreMetaverse.InventoryType.Category`.
    pub const CATEGORY: Self = Self(8);
    /// C# member: `F:LibreMetaverse.InventoryType.Folder`.
    pub const FOLDER: Self = Self(8);
    /// C# member: `F:LibreMetaverse.InventoryType.Gesture`.
    pub const GESTURE: Self = Self(20);
    /// C# member: `F:LibreMetaverse.InventoryType.LSL`.
    pub const LSL: Self = Self(10);
    /// C# member: `F:LibreMetaverse.InventoryType.Landmark`.
    pub const LANDMARK: Self = Self(3);
    /// C# member: `F:LibreMetaverse.InventoryType.Material`.
    pub const MATERIAL: Self = Self(24);
    /// C# member: `F:LibreMetaverse.InventoryType.Mesh`.
    pub const MESH: Self = Self(22);
    /// C# member: `F:LibreMetaverse.InventoryType.Notecard`.
    pub const NOTECARD: Self = Self(7);
    /// C# member: `F:LibreMetaverse.InventoryType.Object`.
    pub const OBJECT: Self = Self(6);
    /// C# member: `F:LibreMetaverse.InventoryType.RootCategory`.
    pub const ROOT_CATEGORY: Self = Self(9);
    /// C# member: `F:LibreMetaverse.InventoryType.Settings`.
    pub const SETTINGS: Self = Self(23);
    /// C# member: `F:LibreMetaverse.InventoryType.Snapshot`.
    pub const SNAPSHOT: Self = Self(15);
    /// C# member: `F:LibreMetaverse.InventoryType.Sound`.
    pub const SOUND: Self = Self(1);
    /// C# member: `F:LibreMetaverse.InventoryType.Texture`.
    pub const TEXTURE: Self = Self(0);
    /// C# member: `F:LibreMetaverse.InventoryType.Unknown`.
    pub const UNKNOWN: Self = Self(-1);
    /// C# member: `F:LibreMetaverse.InventoryType.Wearable`.
    pub const WEARABLE: Self = Self(18);
}

/// C# type: `T:LibreMetaverse.JointType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum JointType {
    /// C# member: `F:LibreMetaverse.JointType.Hinge`.
    Hinge = 1,
    /// C# member: `F:LibreMetaverse.JointType.Invalid`.
    Invalid = 0,
    /// C# member: `F:LibreMetaverse.JointType.Point`.
    Point = 2,
}

/// 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>
{
}

/// C# type: `T:LibreMetaverse.Material`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum Material {
    /// C# member: `F:LibreMetaverse.Material.Flesh`.
    Flesh = 4,
    /// C# member: `F:LibreMetaverse.Material.Glass`.
    Glass = 2,
    /// C# member: `F:LibreMetaverse.Material.Light`.
    Light = 7,
    /// C# member: `F:LibreMetaverse.Material.Metal`.
    Metal = 1,
    /// C# member: `F:LibreMetaverse.Material.Plastic`.
    Plastic = 5,
    /// C# member: `F:LibreMetaverse.Material.Rubber`.
    Rubber = 6,
    /// C# member: `F:LibreMetaverse.Material.Stone`.
    Stone = 0,
    /// C# member: `F:LibreMetaverse.Material.Wood`.
    Wood = 3,
}

/// C# type: `T:LibreMetaverse.Matrix4`.
#[derive(Clone, Copy, Debug)]
pub struct Matrix4 {
    /// C# member: `F:LibreMetaverse.Matrix4.M11`.
    pub m11: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M12`.
    pub m12: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M13`.
    pub m13: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M14`.
    pub m14: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M21`.
    pub m21: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M22`.
    pub m22: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M23`.
    pub m23: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M24`.
    pub m24: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M31`.
    pub m31: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M32`.
    pub m32: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M33`.
    pub m33: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M34`.
    pub m34: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M41`.
    pub m41: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M42`.
    pub m42: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M43`.
    pub m43: f32,
    /// C# member: `F:LibreMetaverse.Matrix4.M44`.
    pub m44: f32,
}
impl Matrix4 {
    /// C# member: `F:LibreMetaverse.Matrix4.Identity`.
    pub fn identity() -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Matrix4.Identity")
    }
    /// C# member: `F:LibreMetaverse.Matrix4.Zero`.
    pub fn zero() -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Matrix4.Zero")
    }
    /// C# member: `M:LibreMetaverse.Matrix4.#ctor(LibreMetaverse.Matrix4)`.
    pub fn new_with_matrix4(m: libremetaverse_types::Matrix4) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.#ctor(LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single)`.
    pub fn new_with_single_single_single(
        roll: f32,
        pitch: f32,
        yaw: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)`.
    pub fn new_with_single_single_single_single_single_single_single_single_single_single_single_single_single_single_single_single(
        m11: f32,
        m12: f32,
        m13: f32,
        m14: f32,
        m21: f32,
        m22: f32,
        m23: f32,
        m24: f32,
        m31: f32,
        m32: f32,
        m33: f32,
        m34: f32,
        m41: f32,
        m42: f32,
        m43: f32,
        m44: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Add(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn add_with_matrix4_matrix4(
        matrix1: libremetaverse_types::Matrix4,
        matrix2: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Add(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Adjoint(LibreMetaverse.Matrix4)`.
    pub fn adjoint(
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Adjoint(LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Adjoint3x3(LibreMetaverse.Matrix4)`.
    pub fn adjoint3x3(
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Adjoint3x3(LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)`.
    pub fn create_from_axis_angle(
        axis: libremetaverse_types::Vector3,
        angle: f32,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateFromEulers(System.Single,System.Single,System.Single)`.
    pub fn create_from_eulers(
        roll: f32,
        pitch: f32,
        yaw: f32,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateFromEulers(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateFromQuaternion(LibreMetaverse.Quaternion)`.
    pub fn create_from_quaternion(
        quaternion: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateFromQuaternion(LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateLookAt(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn create_look_at(
        camera_position: libremetaverse_types::Vector3,
        camera_target: libremetaverse_types::Vector3,
        camera_up_vector: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateLookAt(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateRotationX(System.Single)`.
    pub fn create_rotation_x(radians: f32) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateRotationX(System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateRotationY(System.Single)`.
    pub fn create_rotation_y(radians: f32) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateRotationY(System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateRotationZ(System.Single)`.
    pub fn create_rotation_z(radians: f32) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateRotationZ(System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateScale(LibreMetaverse.Vector3)`.
    pub fn create_scale(
        scale: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateScale(LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateTranslation(LibreMetaverse.Vector3)`.
    pub fn create_translation(
        position: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateTranslation(LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.CreateWorld(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn create_world(
        position: libremetaverse_types::Vector3,
        forward: libremetaverse_types::Vector3,
        up: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.CreateWorld(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Decompose(LibreMetaverse.Vector3@,LibreMetaverse.Quaternion@,LibreMetaverse.Vector3@)`.
    pub fn decompose(
        &mut self,
        scale: &mut libremetaverse_types::Vector3,
        rotation: &mut libremetaverse_types::Quaternion,
        translation: &mut libremetaverse_types::Vector3,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Decompose(LibreMetaverse.Vector3@,LibreMetaverse.Quaternion@,LibreMetaverse.Vector3@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Determinant`.
    pub fn determinant(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Matrix4.Determinant")
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Determinant3x3`.
    pub fn determinant3x3(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Matrix4.Determinant3x3")
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn divide_with_matrix4_matrix4(
        matrix1: libremetaverse_types::Matrix4,
        matrix2: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,System.Single)`.
    pub fn divide_with_matrix4_single(
        matrix1: libremetaverse_types::Matrix4,
        divider: f32,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Divide(LibreMetaverse.Matrix4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Equals(LibreMetaverse.Matrix4)`.
    pub fn equals_with_matrix4(&self, other: libremetaverse_types::Matrix4) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.Equals(LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Equals(System.Object)`.
    pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Matrix4.Equals(System.Object)")
    }
    /// C# member: `M:LibreMetaverse.Matrix4.GetEulerAngles(System.Single@,System.Single@,System.Single@)`.
    pub fn get_euler_angles(
        &self,
        roll: &mut f32,
        pitch: &mut f32,
        yaw: &mut f32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.GetEulerAngles(System.Single@,System.Single@,System.Single@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Matrix4.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.Matrix4.GetQuaternion`.
    pub fn get_quaternion(&self) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Matrix4.GetQuaternion")
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Inverse(LibreMetaverse.Matrix4)`.
    pub fn inverse(
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Inverse(LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Inverse3x3(LibreMetaverse.Matrix4)`.
    pub fn inverse3x3(
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Inverse3x3(LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Lerp(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4,System.Single)`.
    pub fn lerp(
        matrix1: libremetaverse_types::Matrix4,
        matrix2: libremetaverse_types::Matrix4,
        amount: f32,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Lerp(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Minor(LibreMetaverse.Matrix4,System.Int32,System.Int32)`.
    pub fn minor(
        matrix: libremetaverse_types::Matrix4,
        row: i32,
        col: i32,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Minor(LibreMetaverse.Matrix4,System.Int32,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn multiply_with_matrix4_matrix4(
        matrix1: libremetaverse_types::Matrix4,
        matrix2: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,System.Single)`.
    pub fn multiply_with_matrix4_single(
        matrix1: libremetaverse_types::Matrix4,
        scale_factor: f32,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Multiply(LibreMetaverse.Matrix4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Negate(LibreMetaverse.Matrix4)`.
    pub fn negate(
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Negate(LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Subtract(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn subtract(
        matrix1: libremetaverse_types::Matrix4,
        matrix2: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Subtract(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Matrix4.ToString")
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Trace`.
    pub fn trace(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Matrix4.Trace")
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Transform(LibreMetaverse.Matrix4,LibreMetaverse.Quaternion)`.
    pub fn transform(
        value: libremetaverse_types::Matrix4,
        rotation: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Transform(LibreMetaverse.Matrix4,LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.Transpose(LibreMetaverse.Matrix4)`.
    pub fn transpose(
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Matrix4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Matrix4.Transpose(LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_Addition(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn add_with_matrix4_matrix4_31d5e46d(
        left: libremetaverse_types::Matrix4,
        right: libremetaverse_types::Matrix4,
    ) -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_Addition(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn div_with_matrix4_matrix4(
        left: libremetaverse_types::Matrix4,
        right: libremetaverse_types::Matrix4,
    ) -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,System.Single)`.
    pub fn div_with_matrix4_single(
        matrix: libremetaverse_types::Matrix4,
        divider: f32,
    ) -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_Division(LibreMetaverse.Matrix4,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_Equality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn eq(left: libremetaverse_types::Matrix4, right: libremetaverse_types::Matrix4) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_Equality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_Inequality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn ne(left: libremetaverse_types::Matrix4, right: libremetaverse_types::Matrix4) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_Inequality(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn mul_with_matrix4_matrix4(
        left: libremetaverse_types::Matrix4,
        right: libremetaverse_types::Matrix4,
    ) -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,System.Single)`.
    pub fn mul_with_matrix4_single(
        left: libremetaverse_types::Matrix4,
        scalar: f32,
    ) -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_Multiply(LibreMetaverse.Matrix4,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_Subtraction(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)`.
    pub fn sub(
        left: libremetaverse_types::Matrix4,
        right: libremetaverse_types::Matrix4,
    ) -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_Subtraction(LibreMetaverse.Matrix4,LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Matrix4.op_UnaryNegation(LibreMetaverse.Matrix4)`.
    pub fn neg(matrix: libremetaverse_types::Matrix4) -> libremetaverse_types::Matrix4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Matrix4.op_UnaryNegation(LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `P:LibreMetaverse.Matrix4.AtAxis`.
    pub fn at_axis(&self) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Matrix4.AtAxis")
    }
    /// C# member: `P:LibreMetaverse.Matrix4.Item(System.Int32)`.
    pub fn item_with_int32(&self, row: i32) -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Matrix4.Item(System.Int32)")
    }
    /// C# member: `P:LibreMetaverse.Matrix4.Item(System.Int32,System.Int32)`.
    pub fn item_with_int32_int32(&self, row: i32, column: i32) -> f32 {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Matrix4.Item(System.Int32,System.Int32)"
        )
    }
    /// C# member: `P:LibreMetaverse.Matrix4.LeftAxis`.
    pub fn left_axis(&self) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Matrix4.LeftAxis")
    }
    /// C# member: `P:LibreMetaverse.Matrix4.UpAxis`.
    pub fn up_axis(&self) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Matrix4.UpAxis")
    }
}

/// 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>
{
}

/// 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")
    }
}

/// C# type: `T:LibreMetaverse.ObjectCategory`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum ObjectCategory {
    /// C# member: `F:LibreMetaverse.ObjectCategory.Group`.
    Group = 2,
    /// C# member: `F:LibreMetaverse.ObjectCategory.Invalid`.
    Invalid = -1,
    /// C# member: `F:LibreMetaverse.ObjectCategory.None`.
    None = 0,
    /// C# member: `F:LibreMetaverse.ObjectCategory.Other`.
    Other = 3,
    /// C# member: `F:LibreMetaverse.ObjectCategory.Owner`.
    Owner = 1,
    /// C# member: `F:LibreMetaverse.ObjectCategory.Selected`.
    Selected = 4,
    /// C# member: `F:LibreMetaverse.ObjectCategory.Temporary`.
    Temporary = 5,
}

/// C# type: `T:LibreMetaverse.PCode`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum PCode {
    /// C# member: `F:LibreMetaverse.PCode.Avatar`.
    Avatar = 47,
    /// C# member: `F:LibreMetaverse.PCode.Grass`.
    Grass = 95,
    /// C# member: `F:LibreMetaverse.PCode.NewTree`.
    NewTree = 111,
    /// C# member: `F:LibreMetaverse.PCode.None`.
    None = 0,
    /// C# member: `F:LibreMetaverse.PCode.ParticleSystem`.
    ParticleSystem = 143,
    /// C# member: `F:LibreMetaverse.PCode.Prim`.
    Prim = 9,
    /// C# member: `F:LibreMetaverse.PCode.Tree`.
    Tree = 255,
}

/// C# type: `T:LibreMetaverse.PathCurve`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum PathCurve {
    /// C# member: `F:LibreMetaverse.PathCurve.Circle`.
    Circle = 32,
    /// C# member: `F:LibreMetaverse.PathCurve.Circle2`.
    Circle2 = 48,
    /// C# member: `F:LibreMetaverse.PathCurve.Flexible`.
    Flexible = 128,
    /// C# member: `F:LibreMetaverse.PathCurve.Line`.
    Line = 16,
    /// C# member: `F:LibreMetaverse.PathCurve.Test`.
    Test = 64,
}

/// C# type: `T:LibreMetaverse.PhysicsShapeType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum PhysicsShapeType {
    /// C# member: `F:LibreMetaverse.PhysicsShapeType.ConvexHull`.
    ConvexHull = 2,
    /// C# member: `F:LibreMetaverse.PhysicsShapeType.None`.
    None = 1,
    /// C# member: `F:LibreMetaverse.PhysicsShapeType.Prim`.
    Prim = 0,
}

/// C# type: `T:LibreMetaverse.PrimFlags`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(transparent)]
pub struct PrimFlags(pub u32);
impl PrimFlags {
    /// C# member: `F:LibreMetaverse.PrimFlags.AllowInventoryDrop`.
    pub const ALLOW_INVENTORY_DROP: Self = Self(65536);
    /// C# member: `F:LibreMetaverse.PrimFlags.AnimSource`.
    pub const ANIM_SOURCE: Self = Self(2097152);
    /// C# member: `F:LibreMetaverse.PrimFlags.CameraDecoupled`.
    pub const CAMERA_DECOUPLED: Self = Self(1048576);
    /// C# member: `F:LibreMetaverse.PrimFlags.CameraSource`.
    pub const CAMERA_SOURCE: Self = Self(4194304);
    /// C# member: `F:LibreMetaverse.PrimFlags.CastShadows`.
    pub const CAST_SHADOWS: Self = Self(8388608);
    /// C# member: `F:LibreMetaverse.PrimFlags.CreateSelected`.
    pub const CREATE_SELECTED: Self = Self(2);
    /// C# member: `F:LibreMetaverse.PrimFlags.DieAtEdge`.
    pub const DIE_AT_EDGE: Self = Self(16777216);
    /// C# member: `F:LibreMetaverse.PrimFlags.Flying`.
    pub const FLYING: Self = Self(134217728);
    /// C# member: `F:LibreMetaverse.PrimFlags.InventoryEmpty`.
    pub const INVENTORY_EMPTY: Self = Self(2048);
    /// C# member: `F:LibreMetaverse.PrimFlags.JointHinge`.
    pub const JOINT_HINGE: Self = Self(4096);
    /// C# member: `F:LibreMetaverse.PrimFlags.JointLP2P`.
    pub const JOINT_LP2_P: Self = Self(16384);
    /// C# member: `F:LibreMetaverse.PrimFlags.JointP2P`.
    pub const JOINT_P2_P: Self = Self(8192);
    /// C# member: `F:LibreMetaverse.PrimFlags.JointWheel`.
    pub const JOINT_WHEEL: Self = Self(32768);
    /// C# member: `F:LibreMetaverse.PrimFlags.Money`.
    pub const MONEY: Self = Self(512);
    /// C# member: `F:LibreMetaverse.PrimFlags.None`.
    pub const NONE: Self = Self(0);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectAnyOwner`.
    pub const OBJECT_ANY_OWNER: Self = Self(16);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectCopy`.
    pub const OBJECT_COPY: Self = Self(8);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectGroupOwned`.
    pub const OBJECT_GROUP_OWNED: Self = Self(262144);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectModify`.
    pub const OBJECT_MODIFY: Self = Self(4);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectMove`.
    pub const OBJECT_MOVE: Self = Self(256);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectOwnerModify`.
    pub const OBJECT_OWNER_MODIFY: Self = Self(268435456);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectTransfer`.
    pub const OBJECT_TRANSFER: Self = Self(131072);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectYouOfficer`.
    pub const OBJECT_YOU_OFFICER: Self = Self(524288);
    /// C# member: `F:LibreMetaverse.PrimFlags.ObjectYouOwner`.
    pub const OBJECT_YOU_OWNER: Self = Self(32);
    /// C# member: `F:LibreMetaverse.PrimFlags.Phantom`.
    pub const PHANTOM: Self = Self(1024);
    /// C# member: `F:LibreMetaverse.PrimFlags.Physics`.
    pub const PHYSICS: Self = Self(1);
    /// C# member: `F:LibreMetaverse.PrimFlags.ReturnAtEdge`.
    pub const RETURN_AT_EDGE: Self = Self(33554432);
    /// C# member: `F:LibreMetaverse.PrimFlags.Sandbox`.
    pub const SANDBOX: Self = Self(67108864);
    /// C# member: `F:LibreMetaverse.PrimFlags.Scripted`.
    pub const SCRIPTED: Self = Self(64);
    /// C# member: `F:LibreMetaverse.PrimFlags.Temporary`.
    pub const TEMPORARY: Self = Self(1073741824);
    /// C# member: `F:LibreMetaverse.PrimFlags.TemporaryOnRez`.
    pub const TEMPORARY_ON_REZ: Self = Self(536870912);
    /// C# member: `F:LibreMetaverse.PrimFlags.Touch`.
    pub const TOUCH: Self = Self(128);
    /// C# member: `F:LibreMetaverse.PrimFlags.ZlibCompressed`.
    pub const ZLIB_COMPRESSED: Self = Self(2147483648);
}

/// C# type: `T:LibreMetaverse.PrimType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum PrimType {
    /// C# member: `F:LibreMetaverse.PrimType.Box`.
    Box = 1,
    /// C# member: `F:LibreMetaverse.PrimType.Cylinder`.
    Cylinder = 2,
    /// C# member: `F:LibreMetaverse.PrimType.Mesh`.
    Mesh = 9,
    /// C# member: `F:LibreMetaverse.PrimType.Prism`.
    Prism = 3,
    /// C# member: `F:LibreMetaverse.PrimType.Ring`.
    Ring = 7,
    /// C# member: `F:LibreMetaverse.PrimType.Sculpt`.
    Sculpt = 8,
    /// C# member: `F:LibreMetaverse.PrimType.Sphere`.
    Sphere = 4,
    /// C# member: `F:LibreMetaverse.PrimType.Torus`.
    Torus = 5,
    /// C# member: `F:LibreMetaverse.PrimType.Tube`.
    Tube = 6,
    /// C# member: `F:LibreMetaverse.PrimType.Unknown`.
    Unknown = 0,
}

/// C# type: `T:LibreMetaverse.ProfileCurve`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum ProfileCurve {
    /// C# member: `F:LibreMetaverse.ProfileCurve.Circle`.
    Circle = 0,
    /// C# member: `F:LibreMetaverse.ProfileCurve.EqualTriangle`.
    EqualTriangle = 3,
    /// C# member: `F:LibreMetaverse.ProfileCurve.HalfCircle`.
    HalfCircle = 5,
    /// C# member: `F:LibreMetaverse.ProfileCurve.IsoTriangle`.
    IsoTriangle = 2,
    /// C# member: `F:LibreMetaverse.ProfileCurve.RightTriangle`.
    RightTriangle = 4,
    /// C# member: `F:LibreMetaverse.ProfileCurve.Square`.
    Square = 1,
}

/// C# type: `T:LibreMetaverse.Quaternion`.
#[derive(Clone, Copy, Debug)]
pub struct Quaternion {
    /// C# member: `F:LibreMetaverse.Quaternion.W`.
    pub w: f32,
    /// C# member: `F:LibreMetaverse.Quaternion.X`.
    pub x: f32,
    /// C# member: `F:LibreMetaverse.Quaternion.Y`.
    pub y: f32,
    /// C# member: `F:LibreMetaverse.Quaternion.Z`.
    pub z: f32,
}
impl Quaternion {
    /// C# member: `F:LibreMetaverse.Quaternion.Identity`.
    pub fn identity() -> libremetaverse_types::Quaternion {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Quaternion.Identity")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.#ctor(LibreMetaverse.Vector3,System.Single)`.
    pub fn new_with_vector3_single(
        vector_part: libremetaverse_types::Vector3,
        scalar_part: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.#ctor(LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Byte[],System.Int32,System.Boolean)`.
    pub fn new_with_bytes_int32_boolean(
        byte_array: Vec<u8>,
        pos: i32,
        normalized: bool,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.#ctor(System.Byte[],System.Int32,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single)`.
    pub fn new_with_single_single_single(x: f32, y: f32, z: f32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single,System.Single)`.
    pub fn new_with_single_single_single_single(
        x: f32,
        y: f32,
        z: f32,
        w: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.#ctor(System.Single,System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Add(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn add_with_quaternion_quaternion(
        q1: libremetaverse_types::Quaternion,
        q2: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Add(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.ApproxEquals(LibreMetaverse.Quaternion,System.Single)`.
    pub fn approx_equals(
        &mut self,
        quat: libremetaverse_types::Quaternion,
        tolerance: f32,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.ApproxEquals(LibreMetaverse.Quaternion,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Conjugate(LibreMetaverse.Quaternion)`.
    pub fn conjugate(
        quaternion: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Conjugate(LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)`.
    pub fn create_from_axis_angle_with_vector3_single(
        axis: libremetaverse_types::Vector3,
        angle: f32,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.CreateFromAxisAngle(LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.CreateFromAxisAngle(System.Single,System.Single,System.Single,System.Single)`.
    pub fn create_from_axis_angle_with_single_single_single_single(
        axis_x: f32,
        axis_y: f32,
        axis_z: f32,
        angle: f32,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.CreateFromAxisAngle(System.Single,System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.CreateFromEulers(LibreMetaverse.Vector3)`.
    pub fn create_from_eulers_with_vector3(
        eulers: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.CreateFromEulers(LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.CreateFromEulers(System.Single,System.Single,System.Single)`.
    pub fn create_from_eulers_with_single_single_single(
        roll: f32,
        pitch: f32,
        yaw: f32,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.CreateFromEulers(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.CreateFromRotationMatrix(LibreMetaverse.Matrix4)`.
    pub fn create_from_rotation_matrix(
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.CreateFromRotationMatrix(LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Divide(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn divide(
        q1: libremetaverse_types::Quaternion,
        q2: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Divide(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Dot(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn dot(
        q1: libremetaverse_types::Quaternion,
        q2: libremetaverse_types::Quaternion,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Dot(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Equals(LibreMetaverse.Quaternion)`.
    pub fn equals_with_quaternion(&self, other: libremetaverse_types::Quaternion) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.Equals(LibreMetaverse.Quaternion)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Equals(System.Object)`.
    pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.Equals(System.Object)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.FromBytes(System.Byte[],System.Int32,System.Boolean)`.
    pub fn from_bytes(
        byte_array: Vec<u8>,
        pos: i32,
        normalized: bool,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.FromBytes(System.Byte[],System.Int32,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.GetAxisAngle(LibreMetaverse.Vector3@,System.Single@)`.
    pub fn get_axis_angle(
        &self,
        axis: &mut libremetaverse_types::Vector3,
        angle: &mut f32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.GetAxisAngle(LibreMetaverse.Vector3@,System.Single@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.GetBytes`.
    pub fn get_bytes(&self) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.GetBytes")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.GetEulerAngles(System.Single@,System.Single@,System.Single@)`.
    pub fn get_euler_angles(
        &self,
        roll: &mut f32,
        pitch: &mut f32,
        yaw: &mut f32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.GetEulerAngles(System.Single@,System.Single@,System.Single@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Quaternion.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Inverse(LibreMetaverse.Quaternion)`.
    pub fn inverse(
        quaternion: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Inverse(LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Length`.
    pub fn length(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.Length")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.LengthSquared`.
    pub fn length_squared(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.LengthSquared")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn multiply_with_quaternion_quaternion(
        a: libremetaverse_types::Quaternion,
        b: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,System.Single)`.
    pub fn multiply_with_quaternion_single(
        quaternion: libremetaverse_types::Quaternion,
        scale_factor: f32,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Multiply(LibreMetaverse.Quaternion,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Negate(LibreMetaverse.Quaternion)`.
    pub fn negate(
        quaternion: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Negate(LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Normalize(LibreMetaverse.Quaternion)`.
    pub fn normalize(
        q: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Normalize(LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Parse(System.String)`.
    pub fn parse(val: String) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.Parse(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Slerp(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion,System.Single)`.
    pub fn slerp(
        q1: libremetaverse_types::Quaternion,
        q2: libremetaverse_types::Quaternion,
        amount: f32,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Slerp(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.Subtract(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn subtract(
        q1: libremetaverse_types::Quaternion,
        q2: libremetaverse_types::Quaternion,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.Subtract(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.ToBytes(System.Byte[],System.Int32)`.
    pub fn to_bytes(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Quaternion.ToBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.ToEulerVector`.
    pub fn to_euler_vector(&self) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.ToEulerVector")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.ToRawString`.
    pub fn to_raw_string(&self) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Quaternion.ToRawString")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Quaternion.ToString")
    }
    /// C# member: `M:LibreMetaverse.Quaternion.TryParse(System.String,LibreMetaverse.Quaternion@)`.
    pub fn try_parse(val: String, result: &mut libremetaverse_types::Quaternion) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.TryParse(System.String,LibreMetaverse.Quaternion@)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.op_Addition(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn add_with_quaternion_quaternion_b0243903(
        q1: libremetaverse_types::Quaternion,
        q2: libremetaverse_types::Quaternion,
    ) -> libremetaverse_types::Quaternion {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.op_Addition(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.op_Division(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn div(
        q1: libremetaverse_types::Quaternion,
        q2: libremetaverse_types::Quaternion,
    ) -> libremetaverse_types::Quaternion {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.op_Division(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.op_Equality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn eq(q1: libremetaverse_types::Quaternion, q2: libremetaverse_types::Quaternion) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.op_Equality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.op_Inequality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn ne(q1: libremetaverse_types::Quaternion, q2: libremetaverse_types::Quaternion) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.op_Inequality(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn mul_with_quaternion_quaternion(
        a: libremetaverse_types::Quaternion,
        b: libremetaverse_types::Quaternion,
    ) -> libremetaverse_types::Quaternion {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,System.Single)`.
    pub fn mul_with_quaternion_single(
        q: libremetaverse_types::Quaternion,
        scale_factor: f32,
    ) -> libremetaverse_types::Quaternion {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.op_Multiply(LibreMetaverse.Quaternion,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.op_Subtraction(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)`.
    pub fn sub(
        q1: libremetaverse_types::Quaternion,
        q2: libremetaverse_types::Quaternion,
    ) -> libremetaverse_types::Quaternion {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.op_Subtraction(LibreMetaverse.Quaternion,LibreMetaverse.Quaternion)"
        )
    }
    /// C# member: `M:LibreMetaverse.Quaternion.op_UnaryNegation(LibreMetaverse.Quaternion)`.
    pub fn neg(q: libremetaverse_types::Quaternion) -> libremetaverse_types::Quaternion {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Quaternion.op_UnaryNegation(LibreMetaverse.Quaternion)"
        )
    }
}

/// C# type: `T:LibreMetaverse.Ray`.
pub struct Ray {
    /// C# member: `F:LibreMetaverse.Ray.Direction`.
    pub direction: libremetaverse_types::Vector3,
    /// C# member: `F:LibreMetaverse.Ray.Origin`.
    pub origin: libremetaverse_types::Vector3,
}
impl Ray {
    /// C# member: `M:LibreMetaverse.Ray.#ctor(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn new(
        origin: libremetaverse_types::Vector3,
        direction: libremetaverse_types::Vector3,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Ray.#ctor(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
}

/// C# type: `T:LibreMetaverse.SaleType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum SaleType {
    /// C# member: `F:LibreMetaverse.SaleType.Contents`.
    Contents = 3,
    /// C# member: `F:LibreMetaverse.SaleType.Copy`.
    Copy = 2,
    /// C# member: `F:LibreMetaverse.SaleType.Not`.
    Not = 0,
    /// C# member: `F:LibreMetaverse.SaleType.Original`.
    Original = 1,
}

/// C# type: `T:LibreMetaverse.SculptType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum SculptType {
    /// C# member: `F:LibreMetaverse.SculptType.Cylinder`.
    Cylinder = 4,
    /// C# member: `F:LibreMetaverse.SculptType.Invert`.
    Invert = 64,
    /// C# member: `F:LibreMetaverse.SculptType.Mesh`.
    Mesh = 5,
    /// C# member: `F:LibreMetaverse.SculptType.Mirror`.
    Mirror = 128,
    /// C# member: `F:LibreMetaverse.SculptType.None`.
    None = 0,
    /// C# member: `F:LibreMetaverse.SculptType.Plane`.
    Plane = 3,
    /// C# member: `F:LibreMetaverse.SculptType.Sphere`.
    Sphere = 1,
    /// C# member: `F:LibreMetaverse.SculptType.Torus`.
    Torus = 2,
}

/// C# type: `T:LibreMetaverse.SoundFlags`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(transparent)]
pub struct SoundFlags(pub u8);
impl SoundFlags {
    /// C# member: `F:LibreMetaverse.SoundFlags.Loop`.
    pub const LOOP_: Self = Self(1);
    /// C# member: `F:LibreMetaverse.SoundFlags.None`.
    pub const NONE: Self = Self(0);
    /// C# member: `F:LibreMetaverse.SoundFlags.Queue`.
    pub const QUEUE: Self = Self(16);
    /// C# member: `F:LibreMetaverse.SoundFlags.Stop`.
    pub const STOP: Self = Self(32);
    /// C# member: `F:LibreMetaverse.SoundFlags.SyncMaster`.
    pub const SYNC_MASTER: Self = Self(2);
    /// C# member: `F:LibreMetaverse.SoundFlags.SyncPending`.
    pub const SYNC_PENDING: Self = Self(8);
    /// C# member: `F:LibreMetaverse.SoundFlags.SyncSlave`.
    pub const SYNC_SLAVE: Self = Self(4);
}

/// 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")
    }
}

/// C# type: `T:LibreMetaverse.UUID`.
#[derive(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
pub struct UUID {
    bytes: [u8; 16],
}
impl UUID {
    /// C# member: `F:LibreMetaverse.UUID.Zero`.
    pub fn zero() -> libremetaverse_types::UUID {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.UUID.Zero")
    }
    /// C# member: `M:LibreMetaverse.UUID.#ctor(System.Byte[],System.Int32)`.
    pub fn new_with_bytes_int32(source: Vec<u8>, pos: i32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.UUID.#ctor(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.#ctor(System.Guid)`.
    pub fn new_with_guid(guid: libremetaverse_types::compat::Guid) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.#ctor(System.Guid)")
    }
    /// C# member: `M:LibreMetaverse.UUID.#ctor(System.String)`.
    pub fn new_with_string(val: String) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.#ctor(System.String)")
    }
    /// C# member: `M:LibreMetaverse.UUID.#ctor(System.UInt64)`.
    pub fn new_with_u_int64(val: u64) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.#ctor(System.UInt64)")
    }
    /// C# member: `M:LibreMetaverse.UUID.CRC`.
    pub fn crc(&mut self) -> Result<u32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.CRC")
    }
    /// C# member: `M:LibreMetaverse.UUID.Combine(LibreMetaverse.UUID,LibreMetaverse.UUID)`.
    pub fn combine(
        first: libremetaverse_types::UUID,
        second: libremetaverse_types::UUID,
    ) -> Result<libremetaverse_types::UUID, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.UUID.Combine(LibreMetaverse.UUID,LibreMetaverse.UUID)",
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.CompareTo(LibreMetaverse.UUID)`.
    pub fn compare_to(&self, id: libremetaverse_types::UUID) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.UUID.CompareTo(LibreMetaverse.UUID)",
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.Deconstruct(System.Guid@)`.
    pub fn deconstruct(
        &mut self,
        guid: &mut libremetaverse_types::compat::Guid,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.Deconstruct(System.Guid@)")
    }
    /// C# member: `M:LibreMetaverse.UUID.Equals(LibreMetaverse.UUID)`.
    pub fn equals_with_uuid(&self, other: libremetaverse_types::UUID) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.UUID.Equals(LibreMetaverse.UUID)"
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.Equals(System.Object)`.
    pub fn equals_with_object(&self, obj: libremetaverse_types::compat::Object) -> bool {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.UUID.Equals(System.Object)")
    }
    /// C# member: `M:LibreMetaverse.UUID.FromBytes(System.Byte[],System.Int32)`.
    pub fn from_bytes(
        source: Vec<u8>,
        pos: i32,
    ) -> Result<libremetaverse_types::UUID, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.UUID.FromBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.GetBytes`.
    pub fn get_bytes(&self) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.GetBytes")
    }
    /// C# member: `M:LibreMetaverse.UUID.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.UUID.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.UUID.GetULong`.
    pub fn get_u_long(&self) -> Result<u64, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.GetULong")
    }
    /// C# member: `M:LibreMetaverse.UUID.Parse(System.String)`.
    pub fn parse(val: String) -> Result<libremetaverse_types::UUID, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.Parse(System.String)")
    }
    /// C# member: `M:LibreMetaverse.UUID.Random`.
    pub fn random() -> Result<libremetaverse_types::UUID, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.Random")
    }
    /// C# member: `M:LibreMetaverse.UUID.SecureRandom`.
    pub fn secure_random() -> Result<libremetaverse_types::UUID, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.UUID.SecureRandom")
    }
    /// C# member: `M:LibreMetaverse.UUID.ToBytes(System.Byte[],System.Int32)`.
    pub fn to_bytes(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.UUID.ToBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.UUID.ToString")
    }
    /// C# member: `M:LibreMetaverse.UUID.TryParse(System.String,LibreMetaverse.UUID@)`.
    pub fn try_parse(val: String, result: &mut libremetaverse_types::UUID) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.UUID.TryParse(System.String,LibreMetaverse.UUID@)"
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.op_Equality(LibreMetaverse.UUID,LibreMetaverse.UUID)`.
    pub fn eq(left: libremetaverse_types::UUID, right: libremetaverse_types::UUID) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.UUID.op_Equality(LibreMetaverse.UUID,LibreMetaverse.UUID)"
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.op_ExclusiveOr(LibreMetaverse.UUID,LibreMetaverse.UUID)`.
    pub fn bitxor(
        lhs: libremetaverse_types::UUID,
        rhs: libremetaverse_types::UUID,
    ) -> libremetaverse_types::UUID {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.UUID.op_ExclusiveOr(LibreMetaverse.UUID,LibreMetaverse.UUID)"
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.op_Explicit(System.String)~LibreMetaverse.UUID`.
    pub fn try_from(val: String) -> libremetaverse_types::UUID {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.UUID.op_Explicit(System.String)~LibreMetaverse.UUID"
        )
    }
    /// C# member: `M:LibreMetaverse.UUID.op_Inequality(LibreMetaverse.UUID,LibreMetaverse.UUID)`.
    pub fn ne(left: libremetaverse_types::UUID, right: libremetaverse_types::UUID) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.UUID.op_Inequality(LibreMetaverse.UUID,LibreMetaverse.UUID)"
        )
    }
    /// C# member: `P:LibreMetaverse.UUID.Guid`.
    pub fn guid(&self) -> libremetaverse_types::compat::Guid {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.UUID.Guid")
    }
    /// Setter for C# member: `P:LibreMetaverse.UUID.Guid`.
    pub fn set_guid(&mut self, value: libremetaverse_types::compat::Guid) {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.UUID.Guid")
    }
}

/// C# type: `T:LibreMetaverse.Utils`.
pub struct Utils;
impl Utils {
    /// C# member: `F:LibreMetaverse.Utils.DEG_TO_RAD`.
    pub const DEG_TO_RAD: f32 = 0.017453292;
    /// C# member: `F:LibreMetaverse.Utils.E`.
    pub const E: f32 = 2.7182817;
    /// C# member: `F:LibreMetaverse.Utils.EmptyBytes`.
    pub fn empty_bytes() -> Vec<u8> {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Utils.EmptyBytes")
    }
    /// C# member: `F:LibreMetaverse.Utils.EnUsCulture`.
    pub fn en_us_culture() -> libremetaverse_types::compat::CultureInfo {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Utils.EnUsCulture")
    }
    /// C# member: `F:LibreMetaverse.Utils.Epoch`.
    pub fn epoch() -> std::time::SystemTime {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Utils.Epoch")
    }
    /// C# member: `F:LibreMetaverse.Utils.InternStrings`.
    pub fn intern_strings() -> bool {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Utils.InternStrings")
    }
    /// C# member: `F:LibreMetaverse.Utils.LOG10E`.
    pub const LOG10_E: f32 = 0.4342945;
    /// C# member: `F:LibreMetaverse.Utils.LOG2E`.
    pub const LOG2_E: f32 = 1.442695;
    /// C# member: `F:LibreMetaverse.Utils.PI`.
    pub const PI: f32 = 3.1415927;
    /// C# member: `F:LibreMetaverse.Utils.PI_OVER_FOUR`.
    pub const PI_OVER_FOUR: f32 = 0.7853982;
    /// C# member: `F:LibreMetaverse.Utils.PI_OVER_TWO`.
    pub const PI_OVER_TWO: f32 = 1.5707964;
    /// C# member: `F:LibreMetaverse.Utils.RAD_TO_DEG`.
    pub const RAD_TO_DEG: f32 = 57.29578;
    /// C# member: `F:LibreMetaverse.Utils.TWO_PI`.
    pub const TWO_PI: f32 = 6.2831855;
    /// C# member: `M:LibreMetaverse.Utils.AssetTypeToString(LibreMetaverse.AssetType)`.
    pub fn asset_type_to_string(
        type_: libremetaverse_types::AssetType,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.AssetTypeToString(LibreMetaverse.AssetType)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.ByteToFloat(System.Byte,System.Single,System.Single)`.
    pub fn byte_to_float_with_byte_single_single(
        val: u8,
        lower: f32,
        upper: f32,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.ByteToFloat(System.Byte,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.ByteToFloat(System.Byte[],System.Int32,System.Single,System.Single)`.
    pub fn byte_to_float_with_bytes_int32_single_single(
        bytes: Vec<u8>,
        pos: i32,
        lower: f32,
        upper: f32,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.ByteToFloat(System.Byte[],System.Int32,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToDouble(System.Byte[],System.Int32)`.
    pub fn bytes_to_double(bytes: Vec<u8>, pos: i32) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToDouble(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToFloat(System.Byte[],System.Int32)`.
    pub fn bytes_to_float(bytes: Vec<u8>, pos: i32) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToFloat(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToHexString(System.Byte[],System.Int32,System.String)`.
    pub fn bytes_to_hex_string_with_bytes_int32_string(
        bytes: Vec<u8>,
        length: i32,
        field_name: Option<String>,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToHexString(System.Byte[],System.Int32,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToHexString(System.Byte[],System.String)`.
    pub fn bytes_to_hex_string_with_bytes_string(
        bytes: Vec<u8>,
        field_name: String,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToHexString(System.Byte[],System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToInt(System.Byte[])`.
    pub fn bytes_to_int_with_bytes(bytes: Vec<u8>) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.BytesToInt(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToInt(System.Byte[],System.Int32)`.
    pub fn bytes_to_int_with_bytes_int32(bytes: Vec<u8>, pos: i32) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToInt(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToInt16(System.Byte[])`.
    pub fn bytes_to_int16_with_bytes(bytes: Vec<u8>) -> Result<i16, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.BytesToInt16(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToInt16(System.Byte[],System.Int32)`.
    pub fn bytes_to_int16_with_bytes_int32(bytes: Vec<u8>, pos: i32) -> Result<i16, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToInt16(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToInt64(System.Byte[])`.
    pub fn bytes_to_int64_with_bytes(bytes: Vec<u8>) -> Result<i64, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.BytesToInt64(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToInt64(System.Byte[],System.Int32)`.
    pub fn bytes_to_int64_with_bytes_int32(bytes: Vec<u8>, pos: i32) -> Result<i64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToInt64(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToString(System.Byte[])`.
    pub fn bytes_to_string_with_bytes(bytes: Vec<u8>) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.BytesToString(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToString(System.Byte[],System.Int32,System.Int32)`.
    pub fn bytes_to_string_with_bytes_int32_int32(
        bytes: Vec<u8>,
        index: i32,
        count: i32,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToString(System.Byte[],System.Int32,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToUInt(System.Byte[])`.
    pub fn bytes_to_u_int_with_bytes(bytes: Vec<u8>) -> Result<u32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.BytesToUInt(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToUInt(System.Byte[],System.Int32)`.
    pub fn bytes_to_u_int_with_bytes_int32(bytes: Vec<u8>, pos: i32) -> Result<u32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToUInt(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToUInt16(System.Byte[])`.
    pub fn bytes_to_u_int16_with_bytes(bytes: Vec<u8>) -> Result<u16, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.BytesToUInt16(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToUInt16(System.Byte[],System.Int32)`.
    pub fn bytes_to_u_int16_with_bytes_int32(
        bytes: Vec<u8>,
        pos: i32,
    ) -> Result<u16, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.BytesToUInt16(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.BytesToUInt64(System.Byte[])`.
    pub fn bytes_to_u_int64(bytes: Vec<u8>) -> Result<u64, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.BytesToUInt64(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.Clamp(System.Double,System.Double,System.Double)`.
    pub fn clamp_with_double_double_double(
        value: f64,
        min: f64,
        max: f64,
    ) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Clamp(System.Double,System.Double,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.Clamp(System.Int32,System.Int32,System.Int32)`.
    pub fn clamp_with_int32_int32_int32(
        value: i32,
        min: i32,
        max: i32,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Clamp(System.Int32,System.Int32,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.Clamp(System.Single,System.Single,System.Single)`.
    pub fn clamp_with_single_single_single(
        value: f32,
        min: f32,
        max: f32,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Clamp(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.CopyBytes(System.Byte[])`.
    pub fn copy_bytes(bytes: Option<Vec<u8>>) -> Result<Option<Vec<u8>>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.CopyBytes(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.DateTimeToUnixTime(System.DateTime)`.
    pub fn date_time_to_unix_time(time: std::time::SystemTime) -> Result<u32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.DateTimeToUnixTime(System.DateTime)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.Distance(System.Single,System.Single)`.
    pub fn distance(value1: f32, value2: f32) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Distance(System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.DoubleToBytes(System.Double)`.
    pub fn double_to_bytes_with_double(value: f64) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.DoubleToBytes(System.Double)")
    }
    /// C# member: `M:LibreMetaverse.Utils.DoubleToBytes(System.Double,System.Byte[],System.Int32)`.
    pub fn double_to_bytes_with_double_bytes_int32(
        value: f64,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.DoubleToBytes(System.Double,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.DoubleToBytesBig(System.Double)`.
    pub fn double_to_bytes_big(value: f64) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.DoubleToBytesBig(System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.EnumToText(System.Enum)`.
    pub fn enum_to_text(
        value: libremetaverse_types::compat::EnumValue,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.EnumToText(System.Enum)")
    }
    /// C# member: `M:LibreMetaverse.Utils.EnumTryParse``1(System.String,``0@)`.
    pub fn enum_try_parse<T>(
        str_type: String,
        result: &mut Option<T>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.EnumTryParse``1(System.String,``0@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.FloatToByte(System.Single,System.Single,System.Single)`.
    pub fn float_to_byte(val: f32, lower: f32, upper: f32) -> Result<u8, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.FloatToByte(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.FloatToBytes(System.Single)`.
    pub fn float_to_bytes_with_single(value: f32) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.FloatToBytes(System.Single)")
    }
    /// C# member: `M:LibreMetaverse.Utils.FloatToBytes(System.Single,System.Byte[],System.Int32)`.
    pub fn float_to_bytes_with_single_bytes_int32(
        value: f32,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.FloatToBytes(System.Single,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.FloatToUInt16(System.Single,System.Single,System.Single)`.
    pub fn float_to_u_int16(value: f32, lower: f32, upper: f32) -> Result<u16, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.FloatToUInt16(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.FolderTypeToString(LibreMetaverse.FolderType)`.
    pub fn folder_type_to_string(
        type_: libremetaverse_types::FolderType,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.FolderTypeToString(LibreMetaverse.FolderType)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.GetRunningPlatform`.
    pub fn get_running_platform() -> Result<libremetaverse_types::UtilsPlatform, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.GetRunningPlatform")
    }
    /// C# member: `M:LibreMetaverse.Utils.GetUnixTime`.
    pub fn get_unix_time() -> Result<u32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.GetUnixTime")
    }
    /// C# member: `M:LibreMetaverse.Utils.Hermite(System.Double,System.Double,System.Double,System.Double,System.Double)`.
    pub fn hermite_with_double_double_double_double_double(
        value1: f64,
        tangent1: f64,
        value2: f64,
        tangent2: f64,
        amount: f64,
    ) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Hermite(System.Double,System.Double,System.Double,System.Double,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.Hermite(System.Single,System.Single,System.Single,System.Single,System.Single)`.
    pub fn hermite_with_single_single_single_single_single(
        value1: f32,
        tangent1: f32,
        value2: f32,
        tangent2: f32,
        amount: f32,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Hermite(System.Single,System.Single,System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.HexStringToBytes(System.String,System.Boolean)`.
    pub fn hex_string_to_bytes(
        hex_string: String,
        handle_dirty: bool,
    ) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.HexStringToBytes(System.String,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.HostnameToIPv4(System.String)`.
    pub fn hostname_to_i_pv4(hostname: String) -> Result<Option<std::net::IpAddr>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.HostnameToIPv4(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.IPToUInt(System.Net.IPAddress)`.
    pub fn ip_to_u_int(address: std::net::IpAddr) -> Result<u32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.IPToUInt(System.Net.IPAddress)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.Int16ToBytes(System.Int16)`.
    pub fn int16_to_bytes_with_int16(value: i16) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.Int16ToBytes(System.Int16)")
    }
    /// C# member: `M:LibreMetaverse.Utils.Int16ToBytes(System.Int16,System.Byte[],System.Int32)`.
    pub fn int16_to_bytes_with_int16_bytes_int32(
        value: i16,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Int16ToBytes(System.Int16,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.Int64ToBytes(System.Int64)`.
    pub fn int64_to_bytes_with_int64(value: i64) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.Int64ToBytes(System.Int64)")
    }
    /// C# member: `M:LibreMetaverse.Utils.Int64ToBytes(System.Int64,System.Byte[],System.Int32)`.
    pub fn int64_to_bytes_with_int64_bytes_int32(
        value: i64,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Int64ToBytes(System.Int64,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.IntToBytes(System.Int32)`.
    pub fn int_to_bytes_with_int32(value: i32) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.IntToBytes(System.Int32)")
    }
    /// C# member: `M:LibreMetaverse.Utils.IntToBytes(System.Int32,System.Byte[],System.Int32)`.
    pub fn int_to_bytes_with_int32_bytes_int32(
        value: i32,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.IntToBytes(System.Int32,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.IntToBytesBig(System.Int32)`.
    pub fn int_to_bytes_big(value: i32) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.IntToBytesBig(System.Int32)")
    }
    /// C# member: `M:LibreMetaverse.Utils.InventoryTypeToString(LibreMetaverse.InventoryType)`.
    pub fn inventory_type_to_string(
        type_: libremetaverse_types::InventoryType,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.InventoryTypeToString(LibreMetaverse.InventoryType)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.IsFinite(System.Double)`.
    pub fn is_finite_with_double(value: f64) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.IsFinite(System.Double)")
    }
    /// C# member: `M:LibreMetaverse.Utils.IsFinite(System.Single)`.
    pub fn is_finite_with_single(value: f32) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.IsFinite(System.Single)")
    }
    /// C# member: `M:LibreMetaverse.Utils.Lerp(System.Double,System.Double,System.Double)`.
    pub fn lerp_with_double_double_double(
        value1: f64,
        value2: f64,
        amount: f64,
    ) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Lerp(System.Double,System.Double,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.Lerp(System.Single,System.Single,System.Single)`.
    pub fn lerp_with_single_single_single(
        value1: f32,
        value2: f32,
        amount: f32,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.Lerp(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.LongToUInts(System.UInt64,System.UInt32@,System.UInt32@)`.
    pub fn long_to_u_ints(a: u64, b: &mut u32, c: &mut u32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.LongToUInts(System.UInt64,System.UInt32@,System.UInt32@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.MD5(System.Byte[])`.
    pub fn md5_with_bytes(data: Vec<u8>) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.MD5(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.MD5(System.String)`.
    pub fn md5_with_string(str: String) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.MD5(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Utils.MD5String(System.String)`.
    pub fn md5_string(value: String) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.MD5String(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Utils.PBKDF2(System.String)`.
    pub fn pbkdf2(str: String) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.PBKDF2(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Utils.RandomDouble`.
    pub fn random_double() -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.RandomDouble")
    }
    /// C# member: `M:LibreMetaverse.Utils.ReadDoubleLittleEndian(System.Byte[],System.Int32)`.
    pub fn read_double_little_endian(src: Vec<u8>, pos: i32) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.ReadDoubleLittleEndian(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.ReadSingleLittleEndian(System.Byte[],System.Int32)`.
    pub fn read_single_little_endian(src: Vec<u8>, pos: i32) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.ReadSingleLittleEndian(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.Round(System.Single)`.
    pub fn round(val: f32) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.Round(System.Single)")
    }
    /// C# member: `M:LibreMetaverse.Utils.SHA1(System.Byte[])`.
    pub fn sha1(data: Vec<u8>) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.SHA1(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.SHA1String(System.String)`.
    pub fn sha1_string(value: String) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.SHA1String(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Utils.SHA256(System.Byte[])`.
    pub fn sha256(data: Vec<u8>) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.SHA256(System.Byte[])")
    }
    /// C# member: `M:LibreMetaverse.Utils.SHA256String(System.String)`.
    pub fn sha256_string(value: String) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.SHA256String(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Utils.SaleTypeToString(LibreMetaverse.SaleType)`.
    pub fn sale_type_to_string(
        type_: libremetaverse_types::SaleType,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.SaleTypeToString(LibreMetaverse.SaleType)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.SmoothStep(System.Double,System.Double,System.Double)`.
    pub fn smooth_step_with_double_double_double(
        value1: f64,
        value2: f64,
        amount: f64,
    ) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.SmoothStep(System.Double,System.Double,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.SmoothStep(System.Single,System.Single,System.Single)`.
    pub fn smooth_step_with_single_single_single(
        value1: f32,
        value2: f32,
        amount: f32,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.SmoothStep(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.StringToAssetType(System.String)`.
    pub fn string_to_asset_type(
        type_: String,
    ) -> Result<libremetaverse_types::AssetType, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.StringToAssetType(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.StringToAttachmentPoint(System.String)`.
    pub fn string_to_attachment_point(
        value: String,
    ) -> Result<libremetaverse_types::AttachmentPoint, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.StringToAttachmentPoint(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.StringToBytes(System.String)`.
    pub fn string_to_bytes(str: String) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.StringToBytes(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Utils.StringToFolderType(System.String)`.
    pub fn string_to_folder_type(
        type_: String,
    ) -> Result<libremetaverse_types::FolderType, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.StringToFolderType(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.StringToInventoryType(System.String)`.
    pub fn string_to_inventory_type(
        type_: String,
    ) -> Result<libremetaverse_types::InventoryType, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.StringToInventoryType(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.StringToSaleType(System.String)`.
    pub fn string_to_sale_type(
        value: String,
    ) -> Result<libremetaverse_types::SaleType, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.StringToSaleType(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.SwapWords(System.Byte)`.
    pub fn swap_words(value: u8) -> Result<u8, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.SwapWords(System.Byte)")
    }
    /// C# member: `M:LibreMetaverse.Utils.Swap``1(``0@,``0@)`.
    pub fn swap<T>(lhs: &mut Option<T>, rhs: &mut Option<T>) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.Swap``1(``0@,``0@)")
    }
    /// C# member: `M:LibreMetaverse.Utils.ToDegrees(System.Single)`.
    pub fn to_degrees(radians: f32) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.ToDegrees(System.Single)")
    }
    /// C# member: `M:LibreMetaverse.Utils.ToRadians(System.Single)`.
    pub fn to_radians(degrees: f32) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.ToRadians(System.Single)")
    }
    /// C# member: `M:LibreMetaverse.Utils.TryParseDouble(System.String,System.Double@)`.
    pub fn try_parse_double(s: String, result: &mut f64) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Utils.TryParseDouble(System.String,System.Double@)"
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.TryParseHex(System.String,System.UInt32@)`.
    pub fn try_parse_hex(s: String, result: &mut u32) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Utils.TryParseHex(System.String,System.UInt32@)"
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.TryParseSingle(System.String,System.Single@)`.
    pub fn try_parse_single(s: String, result: &mut f32) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Utils.TryParseSingle(System.String,System.Single@)"
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt16ToBytes(System.UInt16)`.
    pub fn u_int16_to_bytes_with_u_int16(value: u16) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.UInt16ToBytes(System.UInt16)")
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt16ToBytes(System.UInt16,System.Byte[],System.Int32)`.
    pub fn u_int16_to_bytes_with_u_int16_bytes_int32(
        value: u16,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UInt16ToBytes(System.UInt16,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt16ToBytesBig(System.UInt16,System.Byte[],System.Int32)`.
    pub fn u_int16_to_bytes_big(value: u16, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UInt16ToBytesBig(System.UInt16,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt16ToFloat(System.Byte[],System.Int32,System.Single,System.Single)`.
    pub fn u_int16_to_float_with_bytes_int32_single_single(
        bytes: Vec<u8>,
        pos: i32,
        lower: f32,
        upper: f32,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UInt16ToFloat(System.Byte[],System.Int32,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt16ToFloat(System.UInt16,System.Single,System.Single)`.
    pub fn u_int16_to_float_with_u_int16_single_single(
        val: u16,
        lower: f32,
        upper: f32,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UInt16ToFloat(System.UInt16,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt64ToBytes(System.UInt64)`.
    pub fn u_int64_to_bytes_with_u_int64(value: u64) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.UInt64ToBytes(System.UInt64)")
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt64ToBytes(System.UInt64,System.Byte[],System.Int32)`.
    pub fn u_int64_to_bytes_with_u_int64_bytes_int32(
        value: u64,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UInt64ToBytes(System.UInt64,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt64ToBytesBig(System.UInt64)`.
    pub fn u_int64_to_bytes_big_with_u_int64(value: u64) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UInt64ToBytesBig(System.UInt64)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UInt64ToBytesBig(System.UInt64,System.Byte[],System.Int32)`.
    pub fn u_int64_to_bytes_big_with_u_int64_bytes_int32(
        value: u64,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UInt64ToBytesBig(System.UInt64,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UIntToBytes(System.UInt32)`.
    pub fn u_int_to_bytes_with_u_int32(value: u32) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utils.UIntToBytes(System.UInt32)")
    }
    /// C# member: `M:LibreMetaverse.Utils.UIntToBytes(System.UInt32,System.Byte[],System.Int32)`.
    pub fn u_int_to_bytes_with_u_int32_bytes_int32(
        value: u32,
        dest: Vec<u8>,
        pos: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UIntToBytes(System.UInt32,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UIntToBytesBig(System.UInt32,System.Byte[],System.Int32)`.
    pub fn u_int_to_bytes_big(value: u32, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UIntToBytesBig(System.UInt32,System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UIntToHexString(System.UInt32)`.
    pub fn u_int_to_hex_string(i: u32) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UIntToHexString(System.UInt32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UIntsToLong(System.UInt32,System.UInt32)`.
    pub fn u_ints_to_long(a: u32, b: u32) -> Result<u64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UIntsToLong(System.UInt32,System.UInt32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UnixTimeToDateTime(System.Int32)`.
    pub fn unix_time_to_date_time_with_int32(
        timestamp: i32,
    ) -> Result<std::time::SystemTime, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UnixTimeToDateTime(System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.UnixTimeToDateTime(System.UInt32)`.
    pub fn unix_time_to_date_time_with_u_int32(
        timestamp: u32,
    ) -> Result<std::time::SystemTime, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.UnixTimeToDateTime(System.UInt32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.WriteDoubleLittleEndian(System.Byte[],System.Int32,System.Double)`.
    pub fn write_double_little_endian(
        dest: Vec<u8>,
        pos: i32,
        value: f64,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.WriteDoubleLittleEndian(System.Byte[],System.Int32,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utils.WriteSingleLittleEndian(System.Byte[],System.Int32,System.Single)`.
    pub fn write_single_little_endian(
        dest: Vec<u8>,
        pos: i32,
        value: f32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utils.WriteSingleLittleEndian(System.Byte[],System.Int32,System.Single)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Utils.Platform`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum UtilsPlatform {
    /// C# member: `F:LibreMetaverse.Utils.Platform.Linux`.
    Linux = 3,
    /// C# member: `F:LibreMetaverse.Utils.Platform.OSX`.
    OSX = 4,
    /// C# member: `F:LibreMetaverse.Utils.Platform.Unknown`.
    Unknown = 0,
    /// C# member: `F:LibreMetaverse.Utils.Platform.Windows`.
    Windows = 1,
    /// C# member: `F:LibreMetaverse.Utils.Platform.WindowsCE`.
    WindowsCE = 2,
}

/// C# type: `T:LibreMetaverse.Vector2`.
pub struct Vector2 {
    /// C# member: `F:LibreMetaverse.Vector2.X`.
    pub x: f32,
    /// C# member: `F:LibreMetaverse.Vector2.Y`.
    pub y: f32,
}
impl Vector2 {
    /// C# member: `F:LibreMetaverse.Vector2.One`.
    pub fn one() -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector2.One")
    }
    /// C# member: `F:LibreMetaverse.Vector2.UnitX`.
    pub fn unit_x() -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector2.UnitX")
    }
    /// C# member: `F:LibreMetaverse.Vector2.UnitY`.
    pub fn unit_y() -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector2.UnitY")
    }
    /// C# member: `F:LibreMetaverse.Vector2.Zero`.
    pub fn zero() -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector2.Zero")
    }
    /// C# member: `M:LibreMetaverse.Vector2.#ctor(LibreMetaverse.Vector2)`.
    pub fn new_with_vector2(vector: libremetaverse_types::Vector2) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.#ctor(LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.#ctor(System.Single)`.
    pub fn new_with_single(value: f32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector2.#ctor(System.Single)")
    }
    /// C# member: `M:LibreMetaverse.Vector2.#ctor(System.Single,System.Single)`.
    pub fn new_with_single_single(x: f32, y: f32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.#ctor(System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Add(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn add_with_vector2_vector2(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Add(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.ApproxEquals(LibreMetaverse.Vector2,System.Single)`.
    pub fn approx_equals(
        &mut self,
        vec: libremetaverse_types::Vector2,
        tolerance: f32,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.ApproxEquals(LibreMetaverse.Vector2,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Clamp(LibreMetaverse.Vector2,LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn clamp(
        value1: libremetaverse_types::Vector2,
        min: libremetaverse_types::Vector2,
        max: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Clamp(LibreMetaverse.Vector2,LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.CompareTo(LibreMetaverse.Vector2)`.
    pub fn compare_to(&self, vector: libremetaverse_types::Vector2) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.CompareTo(LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Distance(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn distance(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Distance(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.DistanceSquared(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn distance_squared(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.DistanceSquared(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Divide(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn divide_with_vector2_vector2(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Divide(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Divide(LibreMetaverse.Vector2,System.Single)`.
    pub fn divide_with_vector2_single(
        value1: libremetaverse_types::Vector2,
        divider: f32,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Divide(LibreMetaverse.Vector2,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Dot(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn dot(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Dot(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Equals(LibreMetaverse.Vector2)`.
    pub fn equals_with_vector2(&self, other: libremetaverse_types::Vector2) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.Equals(LibreMetaverse.Vector2)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Equals(System.Object)`.
    pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector2.Equals(System.Object)")
    }
    /// C# member: `M:LibreMetaverse.Vector2.FromBytes(System.Byte[],System.Int32)`.
    pub fn from_bytes(&mut self, byte_array: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.FromBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.GetBytes`.
    pub fn get_bytes(&self) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector2.GetBytes")
    }
    /// C# member: `M:LibreMetaverse.Vector2.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector2.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.Vector2.IsFinite`.
    pub fn is_finite(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector2.IsFinite")
    }
    /// C# member: `M:LibreMetaverse.Vector2.Length`.
    pub fn length(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector2.Length")
    }
    /// C# member: `M:LibreMetaverse.Vector2.LengthSquared`.
    pub fn length_squared(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector2.LengthSquared")
    }
    /// C# member: `M:LibreMetaverse.Vector2.Lerp(LibreMetaverse.Vector2,LibreMetaverse.Vector2,System.Single)`.
    pub fn lerp(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
        amount: f32,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Lerp(LibreMetaverse.Vector2,LibreMetaverse.Vector2,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Max(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn max(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Max(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Min(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn min(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Min(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Multiply(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn multiply_with_vector2_vector2(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Multiply(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Multiply(LibreMetaverse.Vector2,System.Single)`.
    pub fn multiply_with_vector2_single(
        value1: libremetaverse_types::Vector2,
        scale_factor: f32,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Multiply(LibreMetaverse.Vector2,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Negate(LibreMetaverse.Vector2)`.
    pub fn negate(
        value: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Negate(LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Normalize`.
    pub fn normalize_with_method(&mut self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector2.Normalize")
    }
    /// C# member: `M:LibreMetaverse.Vector2.Normalize(LibreMetaverse.Vector2)`.
    pub fn normalize_with_vector2(
        value: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Normalize(LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Parse(System.String)`.
    pub fn parse(val: String) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector2.Parse(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Vector2.SmoothStep(LibreMetaverse.Vector2,LibreMetaverse.Vector2,System.Single)`.
    pub fn smooth_step(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
        amount: f32,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.SmoothStep(LibreMetaverse.Vector2,LibreMetaverse.Vector2,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.Subtract(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn subtract(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Subtract(LibreMetaverse.Vector2,LibreMetaverse.Vector2)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.ToBytes(System.Byte[],System.Int32)`.
    pub fn to_bytes(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.ToBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.ToRawString`.
    pub fn to_raw_string(&self) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector2.ToRawString")
    }
    /// C# member: `M:LibreMetaverse.Vector2.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector2.ToString")
    }
    /// C# member: `M:LibreMetaverse.Vector2.Transform(LibreMetaverse.Vector2,LibreMetaverse.Matrix4)`.
    pub fn transform(
        position: libremetaverse_types::Vector2,
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.Transform(LibreMetaverse.Vector2,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.TransformNormal(LibreMetaverse.Vector2,LibreMetaverse.Matrix4)`.
    pub fn transform_normal(
        position: libremetaverse_types::Vector2,
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Vector2, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector2.TransformNormal(LibreMetaverse.Vector2,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.TryParse(System.String,LibreMetaverse.Vector2@)`.
    pub fn try_parse(val: String, result: &mut libremetaverse_types::Vector2) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.TryParse(System.String,LibreMetaverse.Vector2@)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_Addition(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn add_with_vector2_vector2_97a2f1ee(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_Addition(LibreMetaverse.Vector2,LibreMetaverse.Vector2)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_Division(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn div_with_vector2_vector2(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_Division(LibreMetaverse.Vector2,LibreMetaverse.Vector2)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_Division(LibreMetaverse.Vector2,System.Single)`.
    pub fn div_with_vector2_single(
        value1: libremetaverse_types::Vector2,
        divider: f32,
    ) -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_Division(LibreMetaverse.Vector2,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_Equality(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn eq(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_Equality(LibreMetaverse.Vector2,LibreMetaverse.Vector2)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_Inequality(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn ne(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_Inequality(LibreMetaverse.Vector2,LibreMetaverse.Vector2)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_Multiply(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn mul_with_vector2_vector2(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_Multiply(LibreMetaverse.Vector2,LibreMetaverse.Vector2)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_Multiply(LibreMetaverse.Vector2,System.Single)`.
    pub fn mul_with_vector2_single(
        value: libremetaverse_types::Vector2,
        scale_factor: f32,
    ) -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_Multiply(LibreMetaverse.Vector2,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_Subtraction(LibreMetaverse.Vector2,LibreMetaverse.Vector2)`.
    pub fn sub(
        value1: libremetaverse_types::Vector2,
        value2: libremetaverse_types::Vector2,
    ) -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_Subtraction(LibreMetaverse.Vector2,LibreMetaverse.Vector2)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector2.op_UnaryNegation(LibreMetaverse.Vector2)`.
    pub fn neg(value: libremetaverse_types::Vector2) -> libremetaverse_types::Vector2 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector2.op_UnaryNegation(LibreMetaverse.Vector2)"
        )
    }
}

/// C# type: `T:LibreMetaverse.Vector3`.
#[derive(Clone, Copy, Debug)]
pub struct Vector3 {
    /// C# member: `F:LibreMetaverse.Vector3.X`.
    pub x: f32,
    /// C# member: `F:LibreMetaverse.Vector3.Y`.
    pub y: f32,
    /// C# member: `F:LibreMetaverse.Vector3.Z`.
    pub z: f32,
}
impl Vector3 {
    /// C# member: `F:LibreMetaverse.Vector3.One`.
    pub fn one() -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3.One")
    }
    /// C# member: `F:LibreMetaverse.Vector3.UnitX`.
    pub fn unit_x() -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3.UnitX")
    }
    /// C# member: `F:LibreMetaverse.Vector3.UnitY`.
    pub fn unit_y() -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3.UnitY")
    }
    /// C# member: `F:LibreMetaverse.Vector3.UnitZ`.
    pub fn unit_z() -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3.UnitZ")
    }
    /// C# member: `F:LibreMetaverse.Vector3.Zero`.
    pub fn zero() -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3.Zero")
    }
    /// C# member: `M:LibreMetaverse.Vector3.#ctor(LibreMetaverse.Vector2,System.Single)`.
    pub fn new_with_vector2_single(
        value: libremetaverse_types::Vector2,
        z: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.#ctor(LibreMetaverse.Vector2,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.#ctor(LibreMetaverse.Vector3d)`.
    pub fn new_with_vector3d(vector: libremetaverse_types::Vector3d) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.#ctor(LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.#ctor(System.Byte[],System.Int32)`.
    pub fn new_with_bytes_int32(byte_array: Vec<u8>, pos: i32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.#ctor(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.#ctor(System.Single)`.
    pub fn new_with_single(value: f32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3.#ctor(System.Single)")
    }
    /// C# member: `M:LibreMetaverse.Vector3.#ctor(System.Single,System.Single,System.Single)`.
    pub fn new_with_single_single_single(x: f32, y: f32, z: f32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.#ctor(System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Add(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn add_with_vector3_vector3(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Add(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.ApproxEquals(LibreMetaverse.Vector3,System.Single)`.
    pub fn approx_equals(
        &mut self,
        vec: libremetaverse_types::Vector3,
        tolerance: f32,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.ApproxEquals(LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Clamp(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn clamp(
        value1: libremetaverse_types::Vector3,
        min: libremetaverse_types::Vector3,
        max: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Clamp(LibreMetaverse.Vector3,LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.CompareTo(LibreMetaverse.Vector3)`.
    pub fn compare_to(&self, vector: libremetaverse_types::Vector3) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.CompareTo(LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Cross(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn cross(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Cross(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Distance(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn distance(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Distance(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.DistanceSquared(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn distance_squared(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.DistanceSquared(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Divide(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn divide_with_vector3_vector3(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Divide(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Divide(LibreMetaverse.Vector3,System.Single)`.
    pub fn divide_with_vector3_single(
        value1: libremetaverse_types::Vector3,
        value2: f32,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Divide(LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Dot(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn dot(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Dot(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Equals(LibreMetaverse.Vector3)`.
    pub fn equals_with_vector3(&self, other: libremetaverse_types::Vector3) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.Equals(LibreMetaverse.Vector3)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Equals(System.Object)`.
    pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector3.Equals(System.Object)")
    }
    /// C# member: `M:LibreMetaverse.Vector3.FromBytes(System.Byte[],System.Int32)`.
    pub fn from_bytes(
        byte_array: Vec<u8>,
        pos: i32,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.FromBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.GetBytes`.
    pub fn get_bytes(&self) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3.GetBytes")
    }
    /// C# member: `M:LibreMetaverse.Vector3.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector3.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.Vector3.IsFinite`.
    pub fn is_finite(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3.IsFinite")
    }
    /// C# member: `M:LibreMetaverse.Vector3.Length`.
    pub fn length(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3.Length")
    }
    /// C# member: `M:LibreMetaverse.Vector3.LengthSquared`.
    pub fn length_squared(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3.LengthSquared")
    }
    /// C# member: `M:LibreMetaverse.Vector3.Lerp(LibreMetaverse.Vector3,LibreMetaverse.Vector3,System.Single)`.
    pub fn lerp(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
        amount: f32,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Lerp(LibreMetaverse.Vector3,LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Mag(LibreMetaverse.Vector3)`.
    pub fn mag(value: libremetaverse_types::Vector3) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Mag(LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Max(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn max(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Max(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Min(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn min(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Min(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Multiply(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn multiply_with_vector3_vector3(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Multiply(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Multiply(LibreMetaverse.Vector3,System.Single)`.
    pub fn multiply_with_vector3_single(
        value1: libremetaverse_types::Vector3,
        scale_factor: f32,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Multiply(LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Negate(LibreMetaverse.Vector3)`.
    pub fn negate(
        value: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Negate(LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Normalize(LibreMetaverse.Vector3)`.
    pub fn normalize(
        value: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Normalize(LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Parse(System.String)`.
    pub fn parse(val: String) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3.Parse(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Vector3.RotationBetween(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn rotation_between(
        a: libremetaverse_types::Vector3,
        b: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Quaternion, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.RotationBetween(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.SmoothStep(LibreMetaverse.Vector3,LibreMetaverse.Vector3,System.Single)`.
    pub fn smooth_step(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
        amount: f32,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.SmoothStep(LibreMetaverse.Vector3,LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.Subtract(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn subtract(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Subtract(LibreMetaverse.Vector3,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.ToBytes(System.Byte[],System.Int32)`.
    pub fn to_bytes(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.ToBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.ToRawString`.
    pub fn to_raw_string(&self) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3.ToRawString")
    }
    /// C# member: `M:LibreMetaverse.Vector3.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector3.ToString")
    }
    /// C# member: `M:LibreMetaverse.Vector3.Transform(LibreMetaverse.Vector3,LibreMetaverse.Matrix4)`.
    pub fn transform(
        position: libremetaverse_types::Vector3,
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.Transform(LibreMetaverse.Vector3,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.TransformNormal(LibreMetaverse.Vector3,LibreMetaverse.Matrix4)`.
    pub fn transform_normal(
        position: libremetaverse_types::Vector3,
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Vector3, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3.TransformNormal(LibreMetaverse.Vector3,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.TryParse(System.String,LibreMetaverse.Vector3@)`.
    pub fn try_parse(val: String, result: &mut libremetaverse_types::Vector3) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.TryParse(System.String,LibreMetaverse.Vector3@)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Addition(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn add_with_vector3_vector3_87e25eaf(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Addition(LibreMetaverse.Vector3,LibreMetaverse.Vector3)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Division(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn div_with_vector3_vector3(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Division(LibreMetaverse.Vector3,LibreMetaverse.Vector3)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Division(LibreMetaverse.Vector3,System.Single)`.
    pub fn div_with_vector3_single(
        value: libremetaverse_types::Vector3,
        divider: f32,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Division(LibreMetaverse.Vector3,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Equality(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn eq(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Equality(LibreMetaverse.Vector3,LibreMetaverse.Vector3)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Explicit(LibreMetaverse.Vector3d)~LibreMetaverse.Vector3`.
    pub fn try_from(value: libremetaverse_types::Vector3d) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Explicit(LibreMetaverse.Vector3d)~LibreMetaverse.Vector3"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Inequality(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn ne(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Inequality(LibreMetaverse.Vector3,LibreMetaverse.Vector3)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Modulus(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn rem(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Modulus(LibreMetaverse.Vector3,LibreMetaverse.Vector3)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Multiply(LibreMetaverse.Vector3,LibreMetaverse.Matrix4)`.
    pub fn mul_with_vector3_matrix4(
        vector: libremetaverse_types::Vector3,
        matrix: libremetaverse_types::Matrix4,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Multiply(LibreMetaverse.Vector3,LibreMetaverse.Matrix4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Multiply(LibreMetaverse.Vector3,LibreMetaverse.Quaternion)`.
    pub fn mul_with_vector3_quaternion(
        vec: libremetaverse_types::Vector3,
        rot: libremetaverse_types::Quaternion,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Multiply(LibreMetaverse.Vector3,LibreMetaverse.Quaternion)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Multiply(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn mul_with_vector3_vector3(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Multiply(LibreMetaverse.Vector3,LibreMetaverse.Vector3)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Multiply(LibreMetaverse.Vector3,System.Single)`.
    pub fn mul_with_vector3_single(
        value: libremetaverse_types::Vector3,
        scale_factor: f32,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Multiply(LibreMetaverse.Vector3,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_Subtraction(LibreMetaverse.Vector3,LibreMetaverse.Vector3)`.
    pub fn sub(
        value1: libremetaverse_types::Vector3,
        value2: libremetaverse_types::Vector3,
    ) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_Subtraction(LibreMetaverse.Vector3,LibreMetaverse.Vector3)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3.op_UnaryNegation(LibreMetaverse.Vector3)`.
    pub fn neg(value: libremetaverse_types::Vector3) -> libremetaverse_types::Vector3 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3.op_UnaryNegation(LibreMetaverse.Vector3)"
        )
    }
}

/// C# type: `T:LibreMetaverse.Vector3d`.
#[derive(Clone, Copy, Debug)]
pub struct Vector3d {
    /// C# member: `F:LibreMetaverse.Vector3d.X`.
    pub x: f64,
    /// C# member: `F:LibreMetaverse.Vector3d.Y`.
    pub y: f64,
    /// C# member: `F:LibreMetaverse.Vector3d.Z`.
    pub z: f64,
}
impl Vector3d {
    /// C# member: `F:LibreMetaverse.Vector3d.One`.
    pub fn one() -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3d.One")
    }
    /// C# member: `F:LibreMetaverse.Vector3d.UnitX`.
    pub fn unit_x() -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3d.UnitX")
    }
    /// C# member: `F:LibreMetaverse.Vector3d.UnitY`.
    pub fn unit_y() -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3d.UnitY")
    }
    /// C# member: `F:LibreMetaverse.Vector3d.UnitZ`.
    pub fn unit_z() -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3d.UnitZ")
    }
    /// C# member: `F:LibreMetaverse.Vector3d.Zero`.
    pub fn zero() -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector3d.Zero")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.#ctor(LibreMetaverse.Vector3)`.
    pub fn new_with_vector3(vector: libremetaverse_types::Vector3) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.#ctor(LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.#ctor(LibreMetaverse.Vector3d)`.
    pub fn new_with_vector3d(vector: libremetaverse_types::Vector3d) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.#ctor(LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.#ctor(System.Byte[],System.Int32)`.
    pub fn new_with_bytes_int32(byte_array: Vec<u8>, pos: i32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.#ctor(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.#ctor(System.Double)`.
    pub fn new_with_double(value: f64) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3d.#ctor(System.Double)")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.#ctor(System.Double,System.Double,System.Double)`.
    pub fn new_with_double_double_double(x: f64, y: f64, z: f64) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.#ctor(System.Double,System.Double,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Add(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn add_with_vector3d_vector3d(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Add(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.ApproxEquals(LibreMetaverse.Vector3d,System.Double)`.
    pub fn approx_equals(
        &mut self,
        vec: libremetaverse_types::Vector3d,
        tolerance: f64,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.ApproxEquals(LibreMetaverse.Vector3d,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Clamp(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn clamp(
        value1: libremetaverse_types::Vector3d,
        min: libremetaverse_types::Vector3d,
        max: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Clamp(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.CompareTo(LibreMetaverse.Vector3d)`.
    pub fn compare_to(&self, vector: libremetaverse_types::Vector3d) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.CompareTo(LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Cross(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn cross(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Cross(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Distance(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn distance(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Distance(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.DistanceSquared(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn distance_squared(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.DistanceSquared(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Divide(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn divide_with_vector3d_vector3d(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Divide(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Divide(LibreMetaverse.Vector3d,System.Double)`.
    pub fn divide_with_vector3d_double(
        value1: libremetaverse_types::Vector3d,
        value2: f64,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Divide(LibreMetaverse.Vector3d,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Dot(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn dot(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Dot(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Equals(LibreMetaverse.Vector3d)`.
    pub fn equals_with_vector3d(&self, other: libremetaverse_types::Vector3d) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.Equals(LibreMetaverse.Vector3d)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Equals(System.Object)`.
    pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector3d.Equals(System.Object)")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.FromBytes(System.Byte[],System.Int32)`.
    pub fn from_bytes(&mut self, byte_array: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.FromBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.GetBytes`.
    pub fn get_bytes(&self) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3d.GetBytes")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector3d.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.IsFinite`.
    pub fn is_finite(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3d.IsFinite")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Length`.
    pub fn length(&mut self) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3d.Length")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.LengthSquared`.
    pub fn length_squared(&mut self) -> Result<f64, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3d.LengthSquared")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Lerp(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d,System.Double)`.
    pub fn lerp(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
        amount: f64,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Lerp(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Max(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn max(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Max(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Min(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn min(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Min(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Multiply(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn multiply_with_vector3d_vector3d(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Multiply(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Multiply(LibreMetaverse.Vector3d,System.Double)`.
    pub fn multiply_with_vector3d_double(
        value1: libremetaverse_types::Vector3d,
        scale_factor: f64,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Multiply(LibreMetaverse.Vector3d,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Negate(LibreMetaverse.Vector3d)`.
    pub fn negate(
        value: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Negate(LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Normalize`.
    pub fn normalize_with_method(&mut self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3d.Normalize")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Normalize(LibreMetaverse.Vector3d)`.
    pub fn normalize_with_vector3d(
        value: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Normalize(LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Parse(System.String)`.
    pub fn parse(val: String) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3d.Parse(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.SmoothStep(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d,System.Double)`.
    pub fn smooth_step(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
        amount: f64,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.SmoothStep(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d,System.Double)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.Subtract(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn subtract(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> Result<libremetaverse_types::Vector3d, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.Subtract(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.ToBytes(System.Byte[],System.Int32)`.
    pub fn to_bytes(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector3d.ToBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.ToRawString`.
    pub fn to_raw_string(&self) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector3d.ToRawString")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector3d.ToString")
    }
    /// C# member: `M:LibreMetaverse.Vector3d.TryParse(System.String,LibreMetaverse.Vector3d@)`.
    pub fn try_parse(val: String, result: &mut libremetaverse_types::Vector3d) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.TryParse(System.String,LibreMetaverse.Vector3d@)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Addition(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn add_with_vector3d_vector3d_bdf7d5f9(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Addition(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Division(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn div_with_vector3d_vector3d(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Division(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Division(LibreMetaverse.Vector3d,System.Double)`.
    pub fn div_with_vector3d_double(
        value: libremetaverse_types::Vector3d,
        divider: f64,
    ) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Division(LibreMetaverse.Vector3d,System.Double)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Equality(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn eq(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Equality(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Implicit(LibreMetaverse.Vector3)~LibreMetaverse.Vector3d`.
    pub fn from(value: libremetaverse_types::Vector3) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Implicit(LibreMetaverse.Vector3)~LibreMetaverse.Vector3d"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Inequality(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn ne(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Inequality(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Modulus(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn rem(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Modulus(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Multiply(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn mul_with_vector3d_vector3d(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Multiply(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Multiply(LibreMetaverse.Vector3d,System.Double)`.
    pub fn mul_with_vector3d_double(
        value: libremetaverse_types::Vector3d,
        scale_factor: f64,
    ) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Multiply(LibreMetaverse.Vector3d,System.Double)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_Subtraction(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)`.
    pub fn sub(
        value1: libremetaverse_types::Vector3d,
        value2: libremetaverse_types::Vector3d,
    ) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_Subtraction(LibreMetaverse.Vector3d,LibreMetaverse.Vector3d)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector3d.op_UnaryNegation(LibreMetaverse.Vector3d)`.
    pub fn neg(value: libremetaverse_types::Vector3d) -> libremetaverse_types::Vector3d {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector3d.op_UnaryNegation(LibreMetaverse.Vector3d)"
        )
    }
}

/// C# type: `T:LibreMetaverse.Vector4`.
pub struct Vector4 {
    /// C# member: `F:LibreMetaverse.Vector4.W`.
    pub w: f32,
    /// C# member: `F:LibreMetaverse.Vector4.X`.
    pub x: f32,
    /// C# member: `F:LibreMetaverse.Vector4.Y`.
    pub y: f32,
    /// C# member: `F:LibreMetaverse.Vector4.Z`.
    pub z: f32,
}
impl Vector4 {
    /// C# member: `F:LibreMetaverse.Vector4.One`.
    pub fn one() -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector4.One")
    }
    /// C# member: `F:LibreMetaverse.Vector4.UnitW`.
    pub fn unit_w() -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector4.UnitW")
    }
    /// C# member: `F:LibreMetaverse.Vector4.UnitX`.
    pub fn unit_x() -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector4.UnitX")
    }
    /// C# member: `F:LibreMetaverse.Vector4.UnitY`.
    pub fn unit_y() -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector4.UnitY")
    }
    /// C# member: `F:LibreMetaverse.Vector4.UnitZ`.
    pub fn unit_z() -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector4.UnitZ")
    }
    /// C# member: `F:LibreMetaverse.Vector4.Zero`.
    pub fn zero() -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!("F:LibreMetaverse.Vector4.Zero")
    }
    /// C# member: `M:LibreMetaverse.Vector4.#ctor(LibreMetaverse.Vector2,System.Single,System.Single)`.
    pub fn new_with_vector2_single_single(
        value: libremetaverse_types::Vector2,
        z: f32,
        w: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.#ctor(LibreMetaverse.Vector2,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.#ctor(LibreMetaverse.Vector3,System.Single)`.
    pub fn new_with_vector3_single(
        value: libremetaverse_types::Vector3,
        w: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.#ctor(LibreMetaverse.Vector3,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.#ctor(LibreMetaverse.Vector4)`.
    pub fn new_with_vector4(value: libremetaverse_types::Vector4) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.#ctor(LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.#ctor(System.Byte[],System.Int32)`.
    pub fn new_with_bytes_int32(byte_array: Vec<u8>, pos: i32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.#ctor(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.#ctor(System.Single)`.
    pub fn new_with_single(value: f32) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector4.#ctor(System.Single)")
    }
    /// C# member: `M:LibreMetaverse.Vector4.#ctor(System.Single,System.Single,System.Single,System.Single)`.
    pub fn new_with_single_single_single_single(
        x: f32,
        y: f32,
        z: f32,
        w: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.#ctor(System.Single,System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Add(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn add_with_vector4_vector4(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Add(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.ApproxEquals(LibreMetaverse.Vector4,System.Single)`.
    pub fn approx_equals(
        &mut self,
        vec: libremetaverse_types::Vector4,
        tolerance: f32,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.ApproxEquals(LibreMetaverse.Vector4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Clamp(LibreMetaverse.Vector4,LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn clamp(
        value1: libremetaverse_types::Vector4,
        min: libremetaverse_types::Vector4,
        max: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Clamp(LibreMetaverse.Vector4,LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.CompareTo(LibreMetaverse.Vector4)`.
    pub fn compare_to(&self, vector: libremetaverse_types::Vector4) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.CompareTo(LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Distance(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn distance(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Distance(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.DistanceSquared(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn distance_squared(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.DistanceSquared(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Divide(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn divide_with_vector4_vector4(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Divide(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Divide(LibreMetaverse.Vector4,System.Single)`.
    pub fn divide_with_vector4_single(
        value1: libremetaverse_types::Vector4,
        divider: f32,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Divide(LibreMetaverse.Vector4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Dot(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn dot(
        vector1: libremetaverse_types::Vector4,
        vector2: libremetaverse_types::Vector4,
    ) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Dot(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Equals(LibreMetaverse.Vector4)`.
    pub fn equals_with_vector4(&self, other: libremetaverse_types::Vector4) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.Equals(LibreMetaverse.Vector4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Equals(System.Object)`.
    pub fn equals_with_object(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector4.Equals(System.Object)")
    }
    /// C# member: `M:LibreMetaverse.Vector4.FromBytes(System.Byte[],System.Int32)`.
    pub fn from_bytes(&mut self, byte_array: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.FromBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.GetBytes`.
    pub fn get_bytes(&self) -> Result<Vec<u8>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector4.GetBytes")
    }
    /// C# member: `M:LibreMetaverse.Vector4.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector4.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.Vector4.IsFinite`.
    pub fn is_finite(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector4.IsFinite")
    }
    /// C# member: `M:LibreMetaverse.Vector4.Length`.
    pub fn length(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector4.Length")
    }
    /// C# member: `M:LibreMetaverse.Vector4.LengthSquared`.
    pub fn length_squared(&mut self) -> Result<f32, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector4.LengthSquared")
    }
    /// C# member: `M:LibreMetaverse.Vector4.Lerp(LibreMetaverse.Vector4,LibreMetaverse.Vector4,System.Single)`.
    pub fn lerp(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
        amount: f32,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Lerp(LibreMetaverse.Vector4,LibreMetaverse.Vector4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Max(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn max(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Max(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Min(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn min(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Min(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Multiply(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn multiply_with_vector4_vector4(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Multiply(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Multiply(LibreMetaverse.Vector4,System.Single)`.
    pub fn multiply_with_vector4_single(
        value1: libremetaverse_types::Vector4,
        scale_factor: f32,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Multiply(LibreMetaverse.Vector4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Negate(LibreMetaverse.Vector4)`.
    pub fn negate(
        value: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Negate(LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Normalize`.
    pub fn normalize_with_method(&mut self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector4.Normalize")
    }
    /// C# member: `M:LibreMetaverse.Vector4.Normalize(LibreMetaverse.Vector4)`.
    pub fn normalize_with_vector4(
        vector: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Normalize(LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Parse(System.String)`.
    pub fn parse(val: String) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector4.Parse(System.String)")
    }
    /// C# member: `M:LibreMetaverse.Vector4.SmoothStep(LibreMetaverse.Vector4,LibreMetaverse.Vector4,System.Single)`.
    pub fn smooth_step(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
        amount: f32,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.SmoothStep(LibreMetaverse.Vector4,LibreMetaverse.Vector4,System.Single)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Subtract(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn subtract(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Subtract(LibreMetaverse.Vector4,LibreMetaverse.Vector4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.ToBytes(System.Byte[],System.Int32)`.
    pub fn to_bytes(&self, dest: Vec<u8>, pos: i32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.ToBytes(System.Byte[],System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.ToRawString`.
    pub fn to_raw_string(&self) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Vector4.ToRawString")
    }
    /// C# member: `M:LibreMetaverse.Vector4.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.Vector4.ToString")
    }
    /// C# member: `M:LibreMetaverse.Vector4.Transform(LibreMetaverse.Vector2,LibreMetaverse.Matrix4)`.
    pub fn transform_with_vector2_matrix4(
        position: libremetaverse_types::Vector2,
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Transform(LibreMetaverse.Vector2,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Transform(LibreMetaverse.Vector3,LibreMetaverse.Matrix4)`.
    pub fn transform_with_vector3_matrix4(
        position: libremetaverse_types::Vector3,
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Transform(LibreMetaverse.Vector3,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.Transform(LibreMetaverse.Vector4,LibreMetaverse.Matrix4)`.
    pub fn transform_with_vector4_matrix4(
        vector: libremetaverse_types::Vector4,
        matrix: libremetaverse_types::Matrix4,
    ) -> Result<libremetaverse_types::Vector4, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Vector4.Transform(LibreMetaverse.Vector4,LibreMetaverse.Matrix4)",
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.TryParse(System.String,LibreMetaverse.Vector4@)`.
    pub fn try_parse(val: String, result: &mut libremetaverse_types::Vector4) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.TryParse(System.String,LibreMetaverse.Vector4@)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_Addition(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn add_with_vector4_vector4_e5065176(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_Addition(LibreMetaverse.Vector4,LibreMetaverse.Vector4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_Division(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn div_with_vector4_vector4(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_Division(LibreMetaverse.Vector4,LibreMetaverse.Vector4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_Division(LibreMetaverse.Vector4,System.Single)`.
    pub fn div_with_vector4_single(
        value1: libremetaverse_types::Vector4,
        divider: f32,
    ) -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_Division(LibreMetaverse.Vector4,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_Equality(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn eq(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_Equality(LibreMetaverse.Vector4,LibreMetaverse.Vector4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_Inequality(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn ne(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_Inequality(LibreMetaverse.Vector4,LibreMetaverse.Vector4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_Multiply(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn mul_with_vector4_vector4(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_Multiply(LibreMetaverse.Vector4,LibreMetaverse.Vector4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_Multiply(LibreMetaverse.Vector4,System.Single)`.
    pub fn mul_with_vector4_single(
        value1: libremetaverse_types::Vector4,
        scale_factor: f32,
    ) -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_Multiply(LibreMetaverse.Vector4,System.Single)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_Subtraction(LibreMetaverse.Vector4,LibreMetaverse.Vector4)`.
    pub fn sub(
        value1: libremetaverse_types::Vector4,
        value2: libremetaverse_types::Vector4,
    ) -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_Subtraction(LibreMetaverse.Vector4,LibreMetaverse.Vector4)"
        )
    }
    /// C# member: `M:LibreMetaverse.Vector4.op_UnaryNegation(LibreMetaverse.Vector4)`.
    pub fn neg(value: libremetaverse_types::Vector4) -> libremetaverse_types::Vector4 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.Vector4.op_UnaryNegation(LibreMetaverse.Vector4)"
        )
    }
}

/// C# type: `T:LibreMetaverse.WearableType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
pub enum WearableType {
    /// C# member: `F:LibreMetaverse.WearableType.Alpha`.
    Alpha = 13,
    /// C# member: `F:LibreMetaverse.WearableType.Eyes`.
    Eyes = 3,
    /// C# member: `F:LibreMetaverse.WearableType.Gloves`.
    Gloves = 9,
    /// C# member: `F:LibreMetaverse.WearableType.Hair`.
    Hair = 2,
    /// C# member: `F:LibreMetaverse.WearableType.Invalid`.
    Invalid = 255,
    /// C# member: `F:LibreMetaverse.WearableType.Jacket`.
    Jacket = 8,
    /// C# member: `F:LibreMetaverse.WearableType.Pants`.
    Pants = 5,
    /// C# member: `F:LibreMetaverse.WearableType.Physics`.
    Physics = 15,
    /// C# member: `F:LibreMetaverse.WearableType.Shape`.
    Shape = 0,
    /// C# member: `F:LibreMetaverse.WearableType.Shirt`.
    Shirt = 4,
    /// C# member: `F:LibreMetaverse.WearableType.Shoes`.
    Shoes = 6,
    /// C# member: `F:LibreMetaverse.WearableType.Skin`.
    Skin = 1,
    /// C# member: `F:LibreMetaverse.WearableType.Skirt`.
    Skirt = 12,
    /// C# member: `F:LibreMetaverse.WearableType.Socks`.
    Socks = 7,
    /// C# member: `F:LibreMetaverse.WearableType.Tattoo`.
    Tattoo = 14,
    /// C# member: `F:LibreMetaverse.WearableType.Underpants`.
    Underpants = 11,
    /// C# member: `F:LibreMetaverse.WearableType.Undershirt`.
    Undershirt = 10,
    /// C# member: `F:LibreMetaverse.WearableType.Universal`.
    Universal = 16,
}
