From 85fc2ad3ced1ef4bf02dde1c1a14c7b3749476ba Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Mon, 19 Jan 2026 09:34:16 +0800 Subject: [PATCH] feat: remove fps support from rust to python --- .../__init__.py => DEVNOTES.md} | 0 BallanceTasSonnet/python/blctas/__init__.py | 0 BallanceTasSonnet/python/blctas/ballance.py | 0 BallanceTasSonnet/python/blctas/datupd.py | 0 BallanceTasSonnet/python/blctas/fps.py | 0 BallanceTasSonnet/python/blctas/tasfile.py | 0 BallanceTasSonnet/python/blctas/tassupt.py | 0 BallanceTasSonnet/src/lib.rs | 250 +----------------- BallanceTasSonnet/src/wrapped/tasfile.rs | 33 --- 9 files changed, 3 insertions(+), 280 deletions(-) rename BallanceTasSonnet/{BallanceTasSonnet/__init__.py => DEVNOTES.md} (100%) create mode 100644 BallanceTasSonnet/python/blctas/__init__.py create mode 100644 BallanceTasSonnet/python/blctas/ballance.py create mode 100644 BallanceTasSonnet/python/blctas/datupd.py create mode 100644 BallanceTasSonnet/python/blctas/fps.py create mode 100644 BallanceTasSonnet/python/blctas/tasfile.py create mode 100644 BallanceTasSonnet/python/blctas/tassupt.py diff --git a/BallanceTasSonnet/BallanceTasSonnet/__init__.py b/BallanceTasSonnet/DEVNOTES.md similarity index 100% rename from BallanceTasSonnet/BallanceTasSonnet/__init__.py rename to BallanceTasSonnet/DEVNOTES.md diff --git a/BallanceTasSonnet/python/blctas/__init__.py b/BallanceTasSonnet/python/blctas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/BallanceTasSonnet/python/blctas/ballance.py b/BallanceTasSonnet/python/blctas/ballance.py new file mode 100644 index 0000000..e69de29 diff --git a/BallanceTasSonnet/python/blctas/datupd.py b/BallanceTasSonnet/python/blctas/datupd.py new file mode 100644 index 0000000..e69de29 diff --git a/BallanceTasSonnet/python/blctas/fps.py b/BallanceTasSonnet/python/blctas/fps.py new file mode 100644 index 0000000..e69de29 diff --git a/BallanceTasSonnet/python/blctas/tasfile.py b/BallanceTasSonnet/python/blctas/tasfile.py new file mode 100644 index 0000000..e69de29 diff --git a/BallanceTasSonnet/python/blctas/tassupt.py b/BallanceTasSonnet/python/blctas/tassupt.py new file mode 100644 index 0000000..e69de29 diff --git a/BallanceTasSonnet/src/lib.rs b/BallanceTasSonnet/src/lib.rs index 3432a2a..04c10af 100644 --- a/BallanceTasSonnet/src/lib.rs +++ b/BallanceTasSonnet/src/lib.rs @@ -54,80 +54,6 @@ mod tasfile { } } - // #[pyclass] - // #[derive(Clone)] - // pub struct PyTasFrame { - // inner: TasFrame, - // } - - // // Constructor for PyTasFrame - // impl PyTasFrame { - // fn new_from_inner(inner: TasFrame) -> Self { - // PyTasFrame { inner } - // } - // } - - // #[pymethods] - // impl PyTasFrame { - // #[new] - // fn new(delta_time: f32, key_flags: u32) -> PyTasFrame { - // PyTasFrame::new_from_inner(TasFrame::new(delta_time, key_flags)) - // } - - // #[staticmethod] - // fn with_fps(fps: f32) -> PyResult { - // match TasFrame::with_fps(fps) { - // Ok(frame) => Ok(PyTasFrame::new_from_inner(frame)), - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // #[getter] - // fn get_delta_time(&self) -> f32 { - // self.inner.get_delta_time() - // } - - // fn get_fps(&self) -> PyResult { - // match self.inner.get_fps() { - // Ok(fps) => Ok(fps), - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // fn set_delta_time(&mut self, delta_time: f32) { - // self.inner.set_delta_time(delta_time); - // } - - // fn set_fps(&mut self, fps: f32) -> PyResult<()> { - // match self.inner.set_fps(fps) { - // Ok(()) => Ok(()), - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // fn is_key_pressed(&self, key: PyTasKey) -> bool { - // self.inner.is_key_pressed(key.into()) - // } - - // fn set_key_pressed(&mut self, key: PyTasKey, pressed: bool) { - // self.inner.set_key_pressed(key.into(), pressed); - // } - - // fn flip_key_pressed(&mut self, key: PyTasKey) { - // self.inner.flip_key_pressed(key.into()); - // } - - // fn clear_key_pressed(&mut self) { - // self.inner.clear_key_pressed(); - // } - // } - #[pyclass] #[derive(Debug)] struct TasFile { @@ -158,18 +84,10 @@ mod tasfile { Ok(self.inner.visit(index)?.get_delta_time()) } - fn get_fps(&self, index: usize) -> PyResult { - Ok(self.inner.visit(index)?.get_fps()?) - } - fn set_delta_time(&mut self, index: usize, delta_time: f32) -> PyResult<()> { Ok(self.inner.visit_mut(index)?.set_delta_time(delta_time)) } - fn set_fps(&mut self, index: usize, fps: f32) -> PyResult<()> { - Ok(self.inner.visit_mut(index)?.set_fps(fps)?) - } - fn is_key_pressed(&self, index: usize, key: TasKey) -> PyResult { Ok(self.inner.visit(index)?.is_key_pressed(key.into())) } @@ -197,13 +115,6 @@ mod tasfile { Ok(()) } - fn batchly_set_fps(&mut self, index_from: usize, index_to: usize, fps: f32) -> PyResult<()> { - for frame in self.inner.batchly_visit_mut(index_from, index_to)? { - frame.set_fps(fps)?; - } - Ok(()) - } - fn batchly_set_key_pressed(&mut self, index_from: usize, index_to: usize, key: TasKey, pressed: bool) -> PyResult<()> { for frame in self.inner.batchly_visit_mut(index_from, index_to)? { frame.set_key_pressed(key.into(), pressed); @@ -229,26 +140,16 @@ mod tasfile { // region: Modify - fn append_with_delta_time(&mut self, count: usize, delta_time: f32) -> PyResult<()> { + fn append(&mut self, count: usize, delta_time: f32) -> PyResult<()> { let frames = vec![RsTasFrame::with_delta_time(delta_time); count]; Ok(self.inner.append(&frames)) } - fn append_with_fps(&mut self, count: usize, fps: f32) -> PyResult<()> { - let frames = vec![RsTasFrame::with_fps(fps)?; count]; - Ok(self.inner.append(&frames)) - } - - fn insert_with_delta_time(&mut self, index: usize, count: usize, delta_time: f32) -> PyResult<()> { + fn insert(&mut self, index: usize, count: usize, delta_time: f32) -> PyResult<()> { let frames = vec![RsTasFrame::with_delta_time(delta_time); count]; Ok(self.inner.insert(index, &frames)?) } - fn insert_with_fps(&mut self, index: usize, count: usize, fps: f32) -> PyResult<()> { - let frames = vec![RsTasFrame::with_fps(fps)?; count]; - Ok(self.inner.insert(index, &frames)?) - } - fn remove(&mut self, index_from: usize, index_to: usize) -> PyResult<()> { Ok(self.inner.remove(index_from, index_to)?) } @@ -257,15 +158,10 @@ mod tasfile { } #[pyfunction] - fn create_with_delta_time(count: usize, delta_time: f32) -> PyResult { + fn create(count: usize, delta_time: f32) -> PyResult { Ok(TasFile { inner: RsTasFile::new(vec![RsTasFrame::with_delta_time(delta_time); count]) }) } - #[pyfunction] - fn create_with_fps(count: usize, fps: f32) -> PyResult { - Ok(TasFile { inner: RsTasFile::new(vec![RsTasFrame::with_fps(fps)?; count]) }) - } - #[pyfunction] fn load(filename: &str) -> PyResult { Ok(TasFile { inner: RsTasFile::load(filename)? }) @@ -276,144 +172,4 @@ mod tasfile { Ok(file.inner.save(filename)?) } - // #[pyclass] - // pub struct PyTasFile { - // inner: InternalTasFile, - // } - - // // Constructor for PyTasFile - // impl PyTasFile { - // fn new_from_inner(inner: InternalTasFile) -> Self { - // PyTasFile { inner } - // } - // } - - // #[pymethods] - // impl PyTasFile { - // #[new] - // fn new(frames: Option>) -> PyTasFile { - // let frames = frames.unwrap_or_else(|| vec![]); - // let inner_frames = frames.into_iter().map(|f| f.inner).collect(); - // PyTasFile::new_from_inner(InternalTasFile::new(inner_frames)) - // } - - // #[staticmethod] - // fn from_brandnew(count: usize, frame: PyTasFrame) -> PyTasFile { - // PyTasFile::new_from_inner(InternalTasFile::from_brandnew(count, frame.inner)) - // } - - // #[staticmethod] - // fn from_brandnew_with_fps(count: usize, fps: f32) -> PyResult { - // match InternalTasFile::from_brandnew_with_fps(count, fps) { - // Ok(file) => Ok(PyTasFile::new_from_inner(file)), - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // #[staticmethod] - // fn load(filename: &str) -> PyResult { - // match InternalTasFile::load(filename) { - // Ok(file) => Ok(PyTasFile::new_from_inner(file)), - // Err(e) => Err(PyErr::new::(e.to_string())), - // } - // } - - // fn save(&self, filename: &str) -> PyResult<()> { - // match self.inner.save(filename) { - // Ok(()) => Ok(()), - // Err(e) => Err(PyErr::new::(e.to_string())), - // } - // } - - // fn clear(&mut self) { - // self.inner.clear(); - // } - - // #[getter] - // fn get_count(&self) -> usize { - // self.inner.get_count() - // } - - // fn is_empty(&self) -> bool { - // self.inner.is_empty() - // } - - // fn visit(&self, index: usize) -> PyResult { - // match self.inner.visit(index) { - // Ok(frame) => Ok(PyTasFrame::new_from_inner(*frame)), - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // fn visit_mut(&mut self, index: usize) -> PyResult { - // match self.inner.visit_mut(index) { - // Ok(frame) => Ok(PyTasFrame::new_from_inner((*frame).clone())), - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // fn batchly_visit(&self, index_from: usize, index_to: usize) -> PyResult> { - // match self.inner.batchly_visit(index_from, index_to) { - // Ok(frames) => { - // let py_frames: Vec = frames - // .iter() - // .map(|f| PyTasFrame::new_from_inner(*f)) - // .collect(); - // Ok(py_frames) - // } - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // fn batchly_visit_mut( - // &mut self, - // index_from: usize, - // index_to: usize, - // ) -> PyResult> { - // match self.inner.batchly_visit_mut(index_from, index_to) { - // Ok(frames) => { - // let py_frames: Vec = frames - // .iter() - // .map(|f| PyTasFrame::new_from_inner((*f).clone())) - // .collect(); - // Ok(py_frames) - // } - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // fn append(&mut self, frames: Vec) { - // let inner_frames: Vec = frames.into_iter().map(|f| f.inner).collect(); - // self.inner.append(&inner_frames); - // } - - // fn insert(&mut self, index: usize, frames: Vec) -> PyResult<()> { - // let inner_frames: Vec = frames.into_iter().map(|f| f.inner).collect(); - // match self.inner.insert(index, &inner_frames) { - // Ok(()) => Ok(()), - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - - // fn remove(&mut self, index_from: usize, index_to: usize) -> PyResult<()> { - // match self.inner.remove(index_from, index_to) { - // Ok(()) => Ok(()), - // Err(e) => Err(PyErr::new::( - // e.to_string(), - // )), - // } - // } - // } } diff --git a/BallanceTasSonnet/src/wrapped/tasfile.rs b/BallanceTasSonnet/src/wrapped/tasfile.rs index 9754196..f3b4d57 100644 --- a/BallanceTasSonnet/src/wrapped/tasfile.rs +++ b/BallanceTasSonnet/src/wrapped/tasfile.rs @@ -8,11 +8,6 @@ use thiserror::Error as TeError; #[derive(Debug, TeError)] pub enum Error { - #[error("delta time should not be zero or negative value")] - BadDeltaTime, - #[error("fps should should not be zero or negative value")] - BadFps, - #[error("given index is out of range")] IndexOutOfRange, #[error("arithmetic overflow")] @@ -61,44 +56,16 @@ impl TasFrame { pub fn with_delta_time(delta_time: f32) -> Self { Self::new(delta_time, 0u32) } - - pub fn with_fps(fps: f32) -> Result { - Ok(Self::with_delta_time(Self::to_delta_time(fps)?)) - } } impl TasFrame { - fn to_fps(delta_time: f32) -> Result { - if delta_time <= 0f32 { - Err(Error::BadDeltaTime) - } else { - Ok(1f32 / delta_time) - } - } - - fn to_delta_time(fps: f32) -> Result { - if fps <= 0f32 { - Err(Error::BadFps) - } else { - Ok(1f32 / fps) - } - } - pub fn get_delta_time(&self) -> f32 { self.delta_time } - pub fn get_fps(&self) -> Result { - Self::to_fps(self.get_delta_time()) - } - pub fn set_delta_time(&mut self, delta_time: f32) -> () { self.delta_time = delta_time } - - pub fn set_fps(&mut self, fps: f32) -> Result<()> { - Ok(self.set_delta_time(Self::to_delta_time(fps)?)) - } } impl TasFrame {