pybevy_scene 0.2.0

Scene components and assets for PyBevy
Documentation
use bevy::scene::InstanceId;
use pyo3::prelude::*;

#[pyclass(name = "InstanceId", eq, frozen)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct PyInstanceId(pub(crate) InstanceId);

#[pymethods]
impl PyInstanceId {
    fn __repr__(&self) -> String {
        format!("{:?}", self.0)
    }

    fn __hash__(&self) -> u64 {
        use std::hash::{Hash, Hasher};
        let mut hasher = std::collections::hash_map::DefaultHasher::new();
        self.0.hash(&mut hasher);
        hasher.finish()
    }
}

impl From<InstanceId> for PyInstanceId {
    fn from(id: InstanceId) -> Self {
        PyInstanceId(id)
    }
}

impl From<PyInstanceId> for InstanceId {
    fn from(id: PyInstanceId) -> Self {
        id.0
    }
}