lavalink_rs/python/model/
http.rs1use 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}