Mark default_config && parse_invoice as sync functions on Dart bindings (#280)

- Generate Dart bindings
This commit is contained in:
Erdem Yerebasmaz
2024-06-03 11:53:34 +03:00
committed by GitHub
parent 866f91c38e
commit 564d75d59d
9 changed files with 50 additions and 60 deletions

View File

@@ -278,10 +278,9 @@ void frbgen_breez_liquid_wire__crate__bindings__breez_log_stream(int64_t port_,
void frbgen_breez_liquid_wire__crate__bindings__connect(int64_t port_, void frbgen_breez_liquid_wire__crate__bindings__connect(int64_t port_,
struct wire_cst_connect_request *req); struct wire_cst_connect_request *req);
void frbgen_breez_liquid_wire__crate__bindings__default_config(int64_t port_, int32_t network); WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__default_config(int32_t network);
void frbgen_breez_liquid_wire__crate__bindings__parse_invoice(int64_t port_, WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__parse_invoice(struct wire_cst_list_prim_u_8_strict *input);
struct wire_cst_list_prim_u_8_strict *input);
void frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(const void *ptr); void frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(const void *ptr);

View File

@@ -59,10 +59,12 @@ pub fn breez_log_stream(s: StreamSink<LogEntry>) -> Result<()> {
Ok(()) Ok(())
} }
#[frb(sync)]
pub fn default_config(network: Network) -> Config { pub fn default_config(network: Network) -> Config {
LiquidSdk::default_config(network) LiquidSdk::default_config(network)
} }
#[frb(sync)]
pub fn parse_invoice(input: String) -> Result<LNInvoice, PaymentError> { pub fn parse_invoice(input: String) -> Result<LNInvoice, PaymentError> {
LiquidSdk::parse_invoice(&input) LiquidSdk::parse_invoice(&input)
} }

View File

@@ -872,18 +872,16 @@ pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__connect(
#[no_mangle] #[no_mangle]
pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__default_config( pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__default_config(
port_: i64,
network: i32, network: i32,
) { ) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
wire__crate__bindings__default_config_impl(port_, network) wire__crate__bindings__default_config_impl(network)
} }
#[no_mangle] #[no_mangle]
pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__parse_invoice( pub extern "C" fn frbgen_breez_liquid_wire__crate__bindings__parse_invoice(
port_: i64,
input: *mut wire_cst_list_prim_u_8_strict, input: *mut wire_cst_list_prim_u_8_strict,
) { ) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
wire__crate__bindings__parse_invoice_impl(port_, input) wire__crate__bindings__parse_invoice_impl(input)
} }
#[no_mangle] #[no_mangle]

View File

@@ -391,40 +391,34 @@ fn wire__crate__bindings__connect_impl(
) )
} }
fn wire__crate__bindings__default_config_impl( fn wire__crate__bindings__default_config_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
network: impl CstDecode<crate::model::Network>, network: impl CstDecode<crate::model::Network>,
) { ) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec, _, _>( FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::<flutter_rust_bridge::for_generated::DcoCodec, _>(
flutter_rust_bridge::for_generated::TaskInfo { flutter_rust_bridge::for_generated::TaskInfo {
debug_name: "default_config", debug_name: "default_config",
port: Some(port_), port: None,
mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync,
}, },
move || { move || {
let api_network = network.cst_decode(); let api_network = network.cst_decode();
move |context| {
transform_result_dco((move || { transform_result_dco((move || {
Result::<_, ()>::Ok(crate::bindings::default_config(api_network)) Result::<_, ()>::Ok(crate::bindings::default_config(api_network))
})()) })())
}
}, },
) )
} }
fn wire__crate__bindings__parse_invoice_impl( fn wire__crate__bindings__parse_invoice_impl(
port_: flutter_rust_bridge::for_generated::MessagePort,
input: impl CstDecode<String>, input: impl CstDecode<String>,
) { ) -> flutter_rust_bridge::for_generated::WireSyncRust2DartDco {
FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::<flutter_rust_bridge::for_generated::DcoCodec, _, _>( FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::<flutter_rust_bridge::for_generated::DcoCodec, _>(
flutter_rust_bridge::for_generated::TaskInfo { flutter_rust_bridge::for_generated::TaskInfo {
debug_name: "parse_invoice", debug_name: "parse_invoice",
port: Some(port_), port: None,
mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync,
}, },
move || { move || {
let api_input = input.cst_decode(); let api_input = input.cst_decode();
move |context| {
transform_result_dco((move || crate::bindings::parse_invoice(api_input))()) transform_result_dco((move || crate::bindings::parse_invoice(api_input))())
}
}, },
) )
} }

View File

@@ -18,10 +18,10 @@ Future<BindingLiquidSdk> connect({required ConnectRequest req, dynamic hint}) =>
Stream<LogEntry> breezLogStream({dynamic hint}) => Stream<LogEntry> breezLogStream({dynamic hint}) =>
RustLib.instance.api.crateBindingsBreezLogStream(hint: hint); RustLib.instance.api.crateBindingsBreezLogStream(hint: hint);
Future<Config> defaultConfig({required Network network, dynamic hint}) => Config defaultConfig({required Network network, dynamic hint}) =>
RustLib.instance.api.crateBindingsDefaultConfig(network: network, hint: hint); RustLib.instance.api.crateBindingsDefaultConfig(network: network, hint: hint);
Future<LNInvoice> parseInvoice({required String input, dynamic hint}) => LNInvoice parseInvoice({required String input, dynamic hint}) =>
RustLib.instance.api.crateBindingsParseInvoice(input: input, hint: hint); RustLib.instance.api.crateBindingsParseInvoice(input: input, hint: hint);
// Rust type: RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<BindingLiquidSdk>> // Rust type: RustOpaqueNom<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<BindingLiquidSdk>>

View File

@@ -100,9 +100,9 @@ abstract class RustLibApi extends BaseApi {
Future<BindingLiquidSdk> crateBindingsConnect({required ConnectRequest req, dynamic hint}); Future<BindingLiquidSdk> crateBindingsConnect({required ConnectRequest req, dynamic hint});
Future<Config> crateBindingsDefaultConfig({required Network network, dynamic hint}); Config crateBindingsDefaultConfig({required Network network, dynamic hint});
Future<LNInvoice> crateBindingsParseInvoice({required String input, dynamic hint}); LNInvoice crateBindingsParseInvoice({required String input, dynamic hint});
RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_BindingLiquidSdk; RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_BindingLiquidSdk;
@@ -488,11 +488,11 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
); );
@override @override
Future<Config> crateBindingsDefaultConfig({required Network network, dynamic hint}) { Config crateBindingsDefaultConfig({required Network network, dynamic hint}) {
return handler.executeNormal(NormalTask( return handler.executeSync(SyncTask(
callFfi: (port_) { callFfi: () {
var arg0 = cst_encode_network(network); var arg0 = cst_encode_network(network);
return wire.wire__crate__bindings__default_config(port_, arg0); return wire.wire__crate__bindings__default_config(arg0);
}, },
codec: DcoCodec( codec: DcoCodec(
decodeSuccessData: dco_decode_config, decodeSuccessData: dco_decode_config,
@@ -511,11 +511,11 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
); );
@override @override
Future<LNInvoice> crateBindingsParseInvoice({required String input, dynamic hint}) { LNInvoice crateBindingsParseInvoice({required String input, dynamic hint}) {
return handler.executeNormal(NormalTask( return handler.executeSync(SyncTask(
callFfi: (port_) { callFfi: () {
var arg0 = cst_encode_String(input); var arg0 = cst_encode_String(input);
return wire.wire__crate__bindings__parse_invoice(port_, arg0); return wire.wire__crate__bindings__parse_invoice(arg0);
}, },
codec: DcoCodec( codec: DcoCodec(
decodeSuccessData: dco_decode_ln_invoice, decodeSuccessData: dco_decode_ln_invoice,

View File

@@ -1325,37 +1325,33 @@ class RustLibWire implements BaseWire {
late final _wire__crate__bindings__connect = _wire__crate__bindings__connectPtr late final _wire__crate__bindings__connect = _wire__crate__bindings__connectPtr
.asFunction<void Function(int, ffi.Pointer<wire_cst_connect_request>)>(); .asFunction<void Function(int, ffi.Pointer<wire_cst_connect_request>)>();
void wire__crate__bindings__default_config( WireSyncRust2DartDco wire__crate__bindings__default_config(
int port_,
int network, int network,
) { ) {
return _wire__crate__bindings__default_config( return _wire__crate__bindings__default_config(
port_,
network, network,
); );
} }
late final _wire__crate__bindings__default_configPtr = late final _wire__crate__bindings__default_configPtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64, ffi.Int32)>>( _lookup<ffi.NativeFunction<WireSyncRust2DartDco Function(ffi.Int32)>>(
'frbgen_breez_liquid_wire__crate__bindings__default_config'); 'frbgen_breez_liquid_wire__crate__bindings__default_config');
late final _wire__crate__bindings__default_config = late final _wire__crate__bindings__default_config =
_wire__crate__bindings__default_configPtr.asFunction<void Function(int, int)>(); _wire__crate__bindings__default_configPtr.asFunction<WireSyncRust2DartDco Function(int)>();
void wire__crate__bindings__parse_invoice( WireSyncRust2DartDco wire__crate__bindings__parse_invoice(
int port_,
ffi.Pointer<wire_cst_list_prim_u_8_strict> input, ffi.Pointer<wire_cst_list_prim_u_8_strict> input,
) { ) {
return _wire__crate__bindings__parse_invoice( return _wire__crate__bindings__parse_invoice(
port_,
input, input,
); );
} }
late final _wire__crate__bindings__parse_invoicePtr = late final _wire__crate__bindings__parse_invoicePtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>( _lookup<ffi.NativeFunction<WireSyncRust2DartDco Function(ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
'frbgen_breez_liquid_wire__crate__bindings__parse_invoice'); 'frbgen_breez_liquid_wire__crate__bindings__parse_invoice');
late final _wire__crate__bindings__parse_invoice = _wire__crate__bindings__parse_invoicePtr late final _wire__crate__bindings__parse_invoice = _wire__crate__bindings__parse_invoicePtr
.asFunction<void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>(); .asFunction<WireSyncRust2DartDco Function(ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
void void
rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk( rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(

View File

@@ -33,9 +33,13 @@ class Config {
final String boltzUrl; final String boltzUrl;
final String electrumUrl; final String electrumUrl;
/// Directory in which all SDK files (DB, log) are stored. /// Directory in which all SDK files (DB, log, cache) are stored.
///
/// Prefix can be a relative or absolute path to this directory.
final String workingDir; final String workingDir;
final Network network; final Network network;
/// Send payment timeout. See [crate::sdk::LiquidSdk::send_payment]
final BigInt paymentTimeoutSec; final BigInt paymentTimeoutSec;
const Config({ const Config({

View File

@@ -294,38 +294,35 @@ class FlutterBreezLiquidBindings {
_frbgen_breez_liquid_wire__crate__bindings__connectPtr _frbgen_breez_liquid_wire__crate__bindings__connectPtr
.asFunction<void Function(int, ffi.Pointer<wire_cst_connect_request>)>(); .asFunction<void Function(int, ffi.Pointer<wire_cst_connect_request>)>();
void frbgen_breez_liquid_wire__crate__bindings__default_config( WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__default_config(
int port_,
int network, int network,
) { ) {
return _frbgen_breez_liquid_wire__crate__bindings__default_config( return _frbgen_breez_liquid_wire__crate__bindings__default_config(
port_,
network, network,
); );
} }
late final _frbgen_breez_liquid_wire__crate__bindings__default_configPtr = late final _frbgen_breez_liquid_wire__crate__bindings__default_configPtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64, ffi.Int32)>>( _lookup<ffi.NativeFunction<WireSyncRust2DartDco Function(ffi.Int32)>>(
'frbgen_breez_liquid_wire__crate__bindings__default_config'); 'frbgen_breez_liquid_wire__crate__bindings__default_config');
late final _frbgen_breez_liquid_wire__crate__bindings__default_config = late final _frbgen_breez_liquid_wire__crate__bindings__default_config =
_frbgen_breez_liquid_wire__crate__bindings__default_configPtr.asFunction<void Function(int, int)>(); _frbgen_breez_liquid_wire__crate__bindings__default_configPtr
.asFunction<WireSyncRust2DartDco Function(int)>();
void frbgen_breez_liquid_wire__crate__bindings__parse_invoice( WireSyncRust2DartDco frbgen_breez_liquid_wire__crate__bindings__parse_invoice(
int port_,
ffi.Pointer<wire_cst_list_prim_u_8_strict> input, ffi.Pointer<wire_cst_list_prim_u_8_strict> input,
) { ) {
return _frbgen_breez_liquid_wire__crate__bindings__parse_invoice( return _frbgen_breez_liquid_wire__crate__bindings__parse_invoice(
port_,
input, input,
); );
} }
late final _frbgen_breez_liquid_wire__crate__bindings__parse_invoicePtr = late final _frbgen_breez_liquid_wire__crate__bindings__parse_invoicePtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>( _lookup<ffi.NativeFunction<WireSyncRust2DartDco Function(ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
'frbgen_breez_liquid_wire__crate__bindings__parse_invoice'); 'frbgen_breez_liquid_wire__crate__bindings__parse_invoice');
late final _frbgen_breez_liquid_wire__crate__bindings__parse_invoice = late final _frbgen_breez_liquid_wire__crate__bindings__parse_invoice =
_frbgen_breez_liquid_wire__crate__bindings__parse_invoicePtr _frbgen_breez_liquid_wire__crate__bindings__parse_invoicePtr
.asFunction<void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>(); .asFunction<WireSyncRust2DartDco Function(ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
void void
frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk( frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBindingLiquidSdk(