metaverse_objects 0.3.3

Metaverse objects, a crate for handling objects in Benthic
Documentation
use benthic_protocol::errors::SessionError;
use metaverse_cache::errors::InventoryError;
use metaverse_mesh::errors::MetaverseMeshError;
use metaverse_messages::{errors::ParseError, http::capabilities::Capability};

#[derive(Debug, thiserror::Error)]
pub enum MeshBuildError {
    #[error("Mesh Error: {0}")]
    MeshError(#[from] MetaverseMeshError),

    #[error("Inventory error: {0}")]
    InventoryError(#[from] InventoryError),
}

#[derive(Debug, thiserror::Error)]
pub enum DownloadError {
    #[error("Capbility missing: {capability}")]
    CapabilityNotPresent { capability: Capability },

    #[error("Response body empty")]
    EmptyBody {},

    #[error("Object contained no SceneGroup: {error}")]
    SceneGroupNotPresent { error: std::io::Error },

    #[error("Session error: {0}")]
    SessionError(#[from] SessionError),

    #[error("Inventory error: {0}")]
    InventoryError(#[from] InventoryError),

    #[error("IO Error: {0}")]
    IOError(#[from] std::io::Error),

    #[error("Parse Error: {0}")]
    ParseError(#[from] ParseError),

    #[error("Unwknown Pixel Format")]
    UnknownPixelFormatError {},
}

#[derive(Debug, thiserror::Error)]
pub enum ObjectUpdateError {
    #[error("Inventory error: {0}")]
    InventoryError(#[from] InventoryError),

    #[error("Session error: {0}")]
    SessionError(#[from] SessionError),

    #[error("Unknown Object Type: {object_type}")]
    UnknownObjectError { object_type: String },

    #[error("{feature} is not yet implemented")]
    Unimplemented { feature: String },
}