feat: golang support

This commit is contained in:
2024-11-29 17:23:38 +08:00
parent 5ebe438584
commit 8249d577be
17 changed files with 349 additions and 15 deletions

5
rust/src/api/go_api.rs Normal file
View File

@ -0,0 +1,5 @@
use crate::go::go_api::{RsCallGo, RsCallGoImpl};
pub fn ping_go(ping: String) -> String {
RsCallGoImpl::ping(ping)
}

View File

@ -5,3 +5,4 @@ pub mod http_api;
pub mod rs_process;
pub mod win32_api;
pub mod asar_api;
pub mod go_api;

View File

@ -37,7 +37,7 @@ flutter_rust_bridge::frb_generated_boilerplate!(
default_rust_auto_opaque = RustAutoOpaqueNom,
);
pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.6.0";
pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = 1832496273;
pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = -809105468;
// Section: executor
@ -161,6 +161,27 @@ fn wire__crate__api__asar_api__get_rsi_launcher_asar_data_impl(
},
)
}
fn wire__crate__api__go_api__ping_go_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
ping: impl CstDecode<String>,
) {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec, _, _>(
flutter_rust_bridge::for_generated::TaskInfo {
debug_name: "ping_go",
port: Some(port_),
mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal,
},
move || {
let api_ping = ping.cst_decode();
move |context| {
transform_result_dco::<_, _, ()>((move || {
let output_ok = Result::<_, ()>::Ok(crate::api::go_api::ping_go(api_ping))?;
Ok(output_ok)
})())
}
},
)
}
fn wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_js_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
that: impl CstDecode<crate::api::asar_api::RsiLauncherAsarData>,
@ -1406,6 +1427,14 @@ mod io {
wire__crate__api__asar_api__get_rsi_launcher_asar_data_impl(port_, asar_path)
}
#[no_mangle]
pub extern "C" fn frbgen_starcitizen_doctor_wire__crate__api__go_api__ping_go(
port_: i64,
ping: *mut wire_cst_list_prim_u_8_strict,
) {
wire__crate__api__go_api__ping_go_impl(port_, ping)
}
#[no_mangle]
pub extern "C" fn frbgen_starcitizen_doctor_wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_js(
port_: i64,

9
rust/src/go/go_api.rs Normal file
View File

@ -0,0 +1,9 @@
pub mod binding {
#![allow(warnings)]
rust2go::r2g_include_binding!();
}
#[rust2go::r2g]
pub trait RsCallGo {
fn ping(ping: String) -> String;
}

1
rust/src/go/mod.rs Normal file
View File

@ -0,0 +1 @@
pub mod go_api;

View File

@ -1,3 +1,4 @@
pub mod api;
mod frb_generated;
pub mod http_package;
pub mod go;