lavalink_rs/python/model/
http.rs

1use crate::model::http::*;
2
3use pyo3::prelude::*;
4use pythonize::{depythonize, pythonize};
5
6pub fn http(py: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> {
7    let http = PyModule::new(py, "http")?;
8
9    http.add_class::<UpdatePlayer>()?;
10    http.add_class::<UpdatePlayerTrack>()?;
11    http.add_class::<ResumingState>()?;
12    http.add_class::<Info>()?;
13    http.add_class::<Git>()?;
14    http.add_class::<Plugin>()?;
15    http.add_class::<Version>()?;
16
17    m.add_submodule(&http)?;
18
19    Ok(())
20}
21
22#[pymethods]
23impl UpdatePlayer {
24    #[new]
25    fn new_py() -> UpdatePlayer {
26        UpdatePlayer::default()
27    }
28}
29
30#[apply(crate::python::with_getter_setter)]
31#[pymethods]
32impl UpdatePlayerTrack {
33    getter_setter!((encoded, Option<String>), (identifier, Option<String>),);
34
35    #[new]
36    fn new_py() -> UpdatePlayerTrack {
37        UpdatePlayerTrack::default()
38    }
39
40    #[getter(user_data)]
41    fn get_user_data(&self, py: Python<'_>) -> PyObject {
42        pythonize(py, &self.user_data).unwrap().into()
43    }
44
45    #[setter(user_data)]
46    fn set_user_data(&mut self, py: Python<'_>, input: PyObject) {
47        self.user_data = depythonize(&input.into_bound(py)).unwrap()
48    }
49}