From 93b2cb644779f7bec3a020556cfb70135313d915 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Tue, 25 Feb 2025 15:36:58 -0600 Subject: [PATCH] Now with increment and decrement --- src/cxx/mod.rs | 2 ++ src/cxx/module.cc | 8 ++++++++ src/cxx/module.h | 4 ++++ src/main.rs | 14 +++++++++----- src/module.rs | 8 ++++++++ 5 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/cxx/mod.rs b/src/cxx/mod.rs index 153a814..451b14c 100644 --- a/src/cxx/mod.rs +++ b/src/cxx/mod.rs @@ -14,7 +14,9 @@ pub mod ffi { type Module; + fn decrement(self: Pin<&mut Module>); fn get_name(self: &Module) -> String; + fn increment(self: Pin<&mut Module>); fn render_text(self: Pin<&mut Module>) -> String; fn set_key_text(self: Pin<&mut Module>, key_text: &String) -> (); fn strip_text(self: Pin<&mut Module>) -> String; diff --git a/src/cxx/module.cc b/src/cxx/module.cc index 17bf3c4..145d117 100644 --- a/src/cxx/module.cc +++ b/src/cxx/module.cc @@ -3,10 +3,18 @@ namespace sword_rs { Module::Module(sword::SWModule* module) : module(module) { } + void Module::decrement() { + this->module->decrement(); + } + rust::String Module::get_name() const { return rust::String(this->module->getName()); } + void Module::increment() { + this->module->increment(); + } + rust::String Module::render_text() { return std::string( (const char*) this->module->renderText() diff --git a/src/cxx/module.h b/src/cxx/module.h index 82336d9..47dec7b 100644 --- a/src/cxx/module.h +++ b/src/cxx/module.h @@ -13,8 +13,12 @@ namespace sword_rs { public: Module(sword::SWModule* module); + void decrement(); + rust::String get_name() const; + void increment(); + rust::String render_text(); void set_key_text(const rust::String& keyText); diff --git a/src/main.rs b/src/main.rs index d8856e6..46dd3a4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,10 +9,14 @@ fn main() { let random_number: i32 = rand::rng().random_range(1..=20); let random_number_str = format!("John.3.{}", random_number); module.set_key_text(&random_number_str); - println!( - "Text John 3:{} is \"{}\"", - random_number, - module.render_text() - ); + for i in 0..10 { + module.increment(); + println!( + "Text John 3:{} is \"{}\"", + random_number + i, + module.render_text() + ); + } + println!("=============================="); } } diff --git a/src/module.rs b/src/module.rs index 38e7944..6f01f4f 100644 --- a/src/module.rs +++ b/src/module.rs @@ -10,10 +10,18 @@ impl Module { Self { module: module } } + pub fn decrement(&mut self) { + self.module.pin_mut().decrement(); + } + pub fn get_name(&self) -> String { self.module.get_name() } + pub fn increment(&mut self) { + self.module.pin_mut().increment(); + } + pub fn render_text(&mut self) -> String { self.module.pin_mut().render_text() }