mirror of https://github.com/dnomd343/klotski.git
Dnomd343
4 months ago
12 changed files with 301 additions and 3 deletions
@ -0,0 +1 @@ |
|||||
|
/target/ |
@ -0,0 +1,224 @@ |
|||||
|
# This file is automatically @generated by Cargo. |
||||
|
# It is not intended for manual editing. |
||||
|
version = 3 |
||||
|
|
||||
|
[[package]] |
||||
|
name = "cc" |
||||
|
version = "1.1.1" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "907d8581360765417f8f2e0e7d602733bbed60156b4465b7617243689ef9b83d" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "codespan-reporting" |
||||
|
version = "0.11.1" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" |
||||
|
dependencies = [ |
||||
|
"termcolor", |
||||
|
"unicode-width", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "cxx" |
||||
|
version = "1.0.124" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "273dcfd3acd4e1e276af13ed2a43eea7001318823e7a726a6b3ed39b4acc0b82" |
||||
|
dependencies = [ |
||||
|
"cc", |
||||
|
"cxxbridge-flags", |
||||
|
"cxxbridge-macro", |
||||
|
"link-cplusplus", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "cxx-build" |
||||
|
version = "1.0.124" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "d8b2766fbd92be34e9ed143898fce6c572dc009de39506ed6903e5a05b68914e" |
||||
|
dependencies = [ |
||||
|
"cc", |
||||
|
"codespan-reporting", |
||||
|
"once_cell", |
||||
|
"proc-macro2", |
||||
|
"quote", |
||||
|
"scratch", |
||||
|
"syn", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "cxxbridge-flags" |
||||
|
version = "1.0.124" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "839fcd5e43464614ffaa989eaf1c139ef1f0c51672a1ed08023307fa1b909ccd" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "cxxbridge-macro" |
||||
|
version = "1.0.124" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "4b2c1c1776b986979be68bb2285da855f8d8a35851a769fca8740df7c3d07877" |
||||
|
dependencies = [ |
||||
|
"proc-macro2", |
||||
|
"quote", |
||||
|
"syn", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "klotski" |
||||
|
version = "0.0.1" |
||||
|
dependencies = [ |
||||
|
"cxx", |
||||
|
"cxx-build", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "link-cplusplus" |
||||
|
version = "1.0.9" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" |
||||
|
dependencies = [ |
||||
|
"cc", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "once_cell" |
||||
|
version = "1.19.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "proc-macro2" |
||||
|
version = "1.0.86" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" |
||||
|
dependencies = [ |
||||
|
"unicode-ident", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "quote" |
||||
|
version = "1.0.36" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" |
||||
|
dependencies = [ |
||||
|
"proc-macro2", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "scratch" |
||||
|
version = "1.0.7" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "syn" |
||||
|
version = "2.0.71" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" |
||||
|
dependencies = [ |
||||
|
"proc-macro2", |
||||
|
"quote", |
||||
|
"unicode-ident", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "termcolor" |
||||
|
version = "1.4.1" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" |
||||
|
dependencies = [ |
||||
|
"winapi-util", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "unicode-ident" |
||||
|
version = "1.0.12" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "unicode-width" |
||||
|
version = "0.1.13" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "winapi-util" |
||||
|
version = "0.1.8" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" |
||||
|
dependencies = [ |
||||
|
"windows-sys", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows-sys" |
||||
|
version = "0.52.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" |
||||
|
dependencies = [ |
||||
|
"windows-targets", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows-targets" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" |
||||
|
dependencies = [ |
||||
|
"windows_aarch64_gnullvm", |
||||
|
"windows_aarch64_msvc", |
||||
|
"windows_i686_gnu", |
||||
|
"windows_i686_gnullvm", |
||||
|
"windows_i686_msvc", |
||||
|
"windows_x86_64_gnu", |
||||
|
"windows_x86_64_gnullvm", |
||||
|
"windows_x86_64_msvc", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows_aarch64_gnullvm" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows_aarch64_msvc" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows_i686_gnu" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows_i686_gnullvm" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows_i686_msvc" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows_x86_64_gnu" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows_x86_64_gnullvm" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "windows_x86_64_msvc" |
||||
|
version = "0.52.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" |
@ -0,0 +1,12 @@ |
|||||
|
[package] |
||||
|
name = "klotski" |
||||
|
version = "0.0.1" |
||||
|
edition = "2021" |
||||
|
|
||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
||||
|
|
||||
|
[dependencies] |
||||
|
cxx = "1.0.124" |
||||
|
|
||||
|
[build-dependencies] |
||||
|
cxx-build = "1.0.124" |
@ -0,0 +1,8 @@ |
|||||
|
fn main() { |
||||
|
cxx_build::bridge("src/common_code.rs") |
||||
|
.file("src/demo.cc") |
||||
|
.compile("klotski"); |
||||
|
|
||||
|
println!("cargo:rerun-if-changed=src/demo.cc"); |
||||
|
println!("cargo:rerun-if-changed=src/common_code.rs"); |
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
#[cxx::bridge] |
||||
|
pub mod ffi { |
||||
|
#[derive(Debug)] |
||||
|
pub struct CommonCode { |
||||
|
code: u64 |
||||
|
} |
||||
|
|
||||
|
extern "Rust" {} |
||||
|
|
||||
|
unsafe extern "C++" { |
||||
|
include!("klotski/src/klotski.h"); |
||||
|
|
||||
|
// fn unwrap(self: &CommonCode) -> u64;
|
||||
|
|
||||
|
// fn from_string(s: &str) -> CommonCode;
|
||||
|
fn from_string() -> CommonCode; |
||||
|
} |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
#include "klotski/src/klotski.h" |
||||
|
#include "klotski/src/common_code.rs.h" |
||||
|
|
||||
|
#include <iostream> |
||||
|
|
||||
|
CommonCode from_string() { |
||||
|
return CommonCode {}; |
||||
|
} |
@ -0,0 +1,5 @@ |
|||||
|
#pragma once |
||||
|
|
||||
|
#include "klotski/src/common_code.rs.h" |
||||
|
|
||||
|
CommonCode from_string(); |
@ -0,0 +1,12 @@ |
|||||
|
mod common_code; |
||||
|
|
||||
|
use common_code::ffi::CommonCode; |
||||
|
|
||||
|
fn main() { |
||||
|
// let code = CommonCode { code: 123 };
|
||||
|
// let val = code.unwrap();
|
||||
|
// println!("val = {}", val);
|
||||
|
|
||||
|
let code = common_code::ffi::from_string(); |
||||
|
println!("code = {:?}", code); |
||||
|
} |
Loading…
Reference in new issue