mirror of https://github.com/dnomd343/klotski.git
Dnomd343
2 years ago
6 changed files with 311 additions and 62 deletions
@ -0,0 +1,249 @@ |
|||||
|
# This file is automatically @generated by Cargo. |
||||
|
# It is not intended for manual editing. |
||||
|
version = 3 |
||||
|
|
||||
|
[[package]] |
||||
|
name = "bindgen" |
||||
|
version = "0.63.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885" |
||||
|
dependencies = [ |
||||
|
"bitflags", |
||||
|
"cexpr", |
||||
|
"clang-sys", |
||||
|
"lazy_static", |
||||
|
"lazycell", |
||||
|
"log", |
||||
|
"peeking_take_while", |
||||
|
"proc-macro2", |
||||
|
"quote", |
||||
|
"regex", |
||||
|
"rustc-hash", |
||||
|
"shlex", |
||||
|
"syn", |
||||
|
"which", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "bitflags" |
||||
|
version = "1.3.2" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "cexpr" |
||||
|
version = "0.6.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" |
||||
|
dependencies = [ |
||||
|
"nom", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "cfg-if" |
||||
|
version = "1.0.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "clang-sys" |
||||
|
version = "1.4.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" |
||||
|
dependencies = [ |
||||
|
"glob", |
||||
|
"libc", |
||||
|
"libloading", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "either" |
||||
|
version = "1.8.1" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "glob" |
||||
|
version = "0.3.1" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "klotski_cli" |
||||
|
version = "0.1.0" |
||||
|
dependencies = [ |
||||
|
"klotski_ffi", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "klotski_ffi" |
||||
|
version = "0.1.0" |
||||
|
dependencies = [ |
||||
|
"bindgen", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "lazy_static" |
||||
|
version = "1.4.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "lazycell" |
||||
|
version = "1.3.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "libc" |
||||
|
version = "0.2.139" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "libloading" |
||||
|
version = "0.7.4" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" |
||||
|
dependencies = [ |
||||
|
"cfg-if", |
||||
|
"winapi", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "log" |
||||
|
version = "0.4.17" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" |
||||
|
dependencies = [ |
||||
|
"cfg-if", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "memchr" |
||||
|
version = "2.5.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "minimal-lexical" |
||||
|
version = "0.2.1" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "nom" |
||||
|
version = "7.1.3" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" |
||||
|
dependencies = [ |
||||
|
"memchr", |
||||
|
"minimal-lexical", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "once_cell" |
||||
|
version = "1.17.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "peeking_take_while" |
||||
|
version = "0.1.2" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "proc-macro2" |
||||
|
version = "1.0.50" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" |
||||
|
dependencies = [ |
||||
|
"unicode-ident", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "quote" |
||||
|
version = "1.0.23" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" |
||||
|
dependencies = [ |
||||
|
"proc-macro2", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "regex" |
||||
|
version = "1.7.1" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" |
||||
|
dependencies = [ |
||||
|
"regex-syntax", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "regex-syntax" |
||||
|
version = "0.6.28" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "rustc-hash" |
||||
|
version = "1.1.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "shlex" |
||||
|
version = "1.1.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "syn" |
||||
|
version = "1.0.107" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" |
||||
|
dependencies = [ |
||||
|
"proc-macro2", |
||||
|
"quote", |
||||
|
"unicode-ident", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "unicode-ident" |
||||
|
version = "1.0.6" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "which" |
||||
|
version = "4.4.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" |
||||
|
dependencies = [ |
||||
|
"either", |
||||
|
"libc", |
||||
|
"once_cell", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "winapi" |
||||
|
version = "0.3.9" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" |
||||
|
dependencies = [ |
||||
|
"winapi-i686-pc-windows-gnu", |
||||
|
"winapi-x86_64-pc-windows-gnu", |
||||
|
] |
||||
|
|
||||
|
[[package]] |
||||
|
name = "winapi-i686-pc-windows-gnu" |
||||
|
version = "0.4.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" |
||||
|
|
||||
|
[[package]] |
||||
|
name = "winapi-x86_64-pc-windows-gnu" |
||||
|
version = "0.4.0" |
||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" |
@ -0,0 +1,9 @@ |
|||||
|
[package] |
||||
|
name = "klotski_cli" |
||||
|
version = "0.1.0" |
||||
|
edition = "2021" |
||||
|
|
||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
||||
|
|
||||
|
[dependencies] |
||||
|
klotski_ffi = { path = "../rust_ffi" } |
@ -0,0 +1,5 @@ |
|||||
|
extern crate klotski_ffi; |
||||
|
|
||||
|
fn main() { |
||||
|
println!("{:#?}", klotski_ffi::load_version()); |
||||
|
} |
@ -0,0 +1,46 @@ |
|||||
|
#![allow(non_snake_case)] |
||||
|
#![allow(non_camel_case_types)] |
||||
|
#![allow(non_upper_case_globals)] |
||||
|
include!(concat!(env!("OUT_DIR"), "/bindings.rs")); |
||||
|
|
||||
|
use std::env; |
||||
|
use std::ffi::{c_char, CStr}; |
||||
|
|
||||
|
#[derive(Debug)] |
||||
|
pub struct Version { |
||||
|
pub author: String, |
||||
|
pub system: String, |
||||
|
pub version: String, |
||||
|
pub compiler: String, |
||||
|
pub commit_id: String, |
||||
|
pub build_time: String, |
||||
|
pub project_url: String, |
||||
|
} |
||||
|
|
||||
|
pub trait CStringDump { |
||||
|
fn dump(&self) -> String; |
||||
|
} |
||||
|
|
||||
|
impl CStringDump for *const c_char { |
||||
|
fn dump(&self) -> String { |
||||
|
let cstr: &CStr; |
||||
|
unsafe { |
||||
|
cstr = CStr::from_ptr(*self); |
||||
|
} |
||||
|
String::from(cstr.to_str().unwrap()) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
pub fn load_version() -> Version { |
||||
|
unsafe { |
||||
|
Version { |
||||
|
author: get_author().dump(), |
||||
|
system: get_system_info().dump(), |
||||
|
version: get_version().dump(), |
||||
|
compiler: get_compiler_info().dump(), |
||||
|
commit_id: get_commit_id().dump(), |
||||
|
build_time: get_build_time().dump(), |
||||
|
project_url: get_project_url().dump(), |
||||
|
} |
||||
|
} |
||||
|
} |
@ -1,62 +0,0 @@ |
|||||
#![allow(non_snake_case)] |
|
||||
#![allow(non_camel_case_types)] |
|
||||
#![allow(non_upper_case_globals)] |
|
||||
include!(concat!(env!("OUT_DIR"), "/bindings.rs")); |
|
||||
|
|
||||
use std::env; |
|
||||
use std::ffi::{c_char, CStr}; |
|
||||
|
|
||||
pub trait CStringDump { |
|
||||
fn dump(&self) -> String; |
|
||||
} |
|
||||
|
|
||||
impl CStringDump for *const c_char { |
|
||||
fn dump(&self) -> String { |
|
||||
let cstr: &CStr; |
|
||||
unsafe { |
|
||||
cstr = CStr::from_ptr(*self); |
|
||||
} |
|
||||
String::from(cstr.to_str().unwrap()) |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
// fn klotski_tmain() {
|
|
||||
// unsafe {
|
|
||||
// tmain();
|
|
||||
// }
|
|
||||
// }
|
|
||||
|
|
||||
// fn const_char_dump(i: *const c_char) {
|
|
||||
//
|
|
||||
// }
|
|
||||
|
|
||||
fn klotski_version() -> String { |
|
||||
unsafe { |
|
||||
// let v_major = get_version_major();
|
|
||||
|
|
||||
// let v = get_version();
|
|
||||
// let csp: &CStr = CStr::from_ptr(v);
|
|
||||
// let s: &str = csp.to_str().unwrap();
|
|
||||
// println!("klotski version -> {}", s);
|
|
||||
|
|
||||
String::from(get_version().dump()) |
|
||||
// String::new()
|
|
||||
} |
|
||||
} |
|
||||
|
|
||||
fn klotski_system() -> String { |
|
||||
unsafe { |
|
||||
String::from(get_system_info().dump()) |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
fn main() { |
|
||||
println!("rust start"); |
|
||||
|
|
||||
// klotski_tmain();
|
|
||||
|
|
||||
println!("version -> {}", klotski_version()); |
|
||||
println!("system -> {}", klotski_system()); |
|
||||
|
|
||||
println!("rust exit"); |
|
||||
} |
|
Loading…
Reference in new issue