Compiling and linking with sword

This commit is contained in:
Greg Hellings
2025-02-24 15:59:24 -06:00
parent c8dfcc61e2
commit 1a6e51579b
9 changed files with 251 additions and 53 deletions
+8
View File
@@ -0,0 +1,8 @@
#include "mgr.h"
#include <swmgr.h>
Mgr::Mgr() : mgr(new sword::SWMgr()) { }
std::unique_ptr<Mgr> new_mgr() {
return std::unique_ptr<Mgr>(new Mgr());
}
+14
View File
@@ -0,0 +1,14 @@
#pragma once
#include <memory>
#include <sword/swmgr.h>
class Mgr {
public:
Mgr();
private:
sword::SWMgr* mgr;
};
std::unique_ptr<Mgr> new_mgr();
+1 -14
View File
@@ -1,14 +1 @@
pub fn add(left: u64, right: u64) -> u64 {
left + right
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}
pub mod mgr;
+21
View File
@@ -0,0 +1,21 @@
#[cxx::bridge]
mod ffi {
unsafe extern "C++" {
include!("sword_rs/src/cxx/mgr.h");
type Mgr;
fn new_mgr() -> UniquePtr<Mgr>;
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn can_create_mgr() {
let mgr = ffi::new_mgr();
assert!(!mgr.is_null());
}
}