diff --git a/src/cxx/mod.rs b/src/cxx/mod.rs index 426919f..bfd70cd 100644 --- a/src/cxx/mod.rs +++ b/src/cxx/mod.rs @@ -86,6 +86,7 @@ pub mod ffi { fn set_chapter(self: Pin<&mut VerseKey>, chapter: u8); fn set_verse(self: Pin<&mut VerseKey>, verse: u8); fn set_versification(self: Pin<&mut VerseKey>, versification: &String); + fn increment(self: Pin<&mut VerseKey>); } } diff --git a/src/cxx/versekey.cc b/src/cxx/versekey.cc index 51bcd38..b2a25b1 100644 --- a/src/cxx/versekey.cc +++ b/src/cxx/versekey.cc @@ -161,6 +161,12 @@ namespace sword_rs { } } + void VerseKey::increment() { + if (ptr) { + ptr->increment(); + } + } + bool VerseKey::is_valid() const { return ptr != nullptr; } diff --git a/src/cxx/versekey.h b/src/cxx/versekey.h index 19d9ed0..04491ca 100644 --- a/src/cxx/versekey.h +++ b/src/cxx/versekey.h @@ -59,6 +59,8 @@ namespace sword_rs { void set_verse(uint8_t verse); void set_versification(const rust::String &versification); + void increment(); + bool is_valid() const; }; diff --git a/src/versekey.rs b/src/versekey.rs index 124aaf0..1b3be99 100644 --- a/src/versekey.rs +++ b/src/versekey.rs @@ -185,6 +185,10 @@ impl VerseKey { pub fn set_versification(&mut self, versification: &String) { self.as_pin_mut().set_versification(versification) } + + pub fn increment(&mut self) { + self.as_pin_mut().increment() + } } impl Default for VerseKey {