feat: RsProcess

This commit is contained in:
2024-04-16 22:34:50 +08:00
parent 90ff0025d6
commit 603ef46f10
16 changed files with 1456 additions and 226 deletions

View File

@ -4,7 +4,7 @@
// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field
import 'api/http_api.dart';
import 'api/process_api.dart';
import 'api/rs_process.dart';
import 'dart:async';
import 'dart:convert';
import 'dart:ffi' as ffi;
@ -20,18 +20,45 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
required super.portManager,
});
CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_RsProcessPtr =>
wire._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcessPtr;
@protected
AnyhowException dco_decode_AnyhowException(dynamic raw);
@protected
RsProcess
dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
dynamic raw);
@protected
RsProcess
dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
dynamic raw);
@protected
RsProcess
dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
dynamic raw);
@protected
Map<String, String> dco_decode_Map_String_String(dynamic raw);
@protected
RustStreamSink<String> dco_decode_StreamSink_String_Dco(dynamic raw);
RsProcess
dco_decode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
dynamic raw);
@protected
RustStreamSink<RsProcessStreamData>
dco_decode_StreamSink_rs_process_stream_data_Dco(dynamic raw);
@protected
String dco_decode_String(dynamic raw);
@protected
int dco_decode_box_autoadd_u_32(dynamic raw);
@protected
int dco_decode_box_autoadd_u_64(dynamic raw);
@ -59,6 +86,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
String? dco_decode_opt_String(dynamic raw);
@protected
int? dco_decode_opt_box_autoadd_u_32(dynamic raw);
@protected
int? dco_decode_opt_box_autoadd_u_64(dynamic raw);
@ -68,12 +98,21 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
(String, String) dco_decode_record_string_string(dynamic raw);
@protected
RsProcessStreamData dco_decode_rs_process_stream_data(dynamic raw);
@protected
RsProcessStreamDataType dco_decode_rs_process_stream_data_type(dynamic raw);
@protected
RustHttpResponse dco_decode_rust_http_response(dynamic raw);
@protected
int dco_decode_u_16(dynamic raw);
@protected
int dco_decode_u_32(dynamic raw);
@protected
int dco_decode_u_64(dynamic raw);
@ -83,20 +122,47 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
void dco_decode_unit(dynamic raw);
@protected
int dco_decode_usize(dynamic raw);
@protected
AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer);
@protected
RsProcess
sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
SseDeserializer deserializer);
@protected
RsProcess
sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
SseDeserializer deserializer);
@protected
RsProcess
sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
SseDeserializer deserializer);
@protected
Map<String, String> sse_decode_Map_String_String(
SseDeserializer deserializer);
@protected
RustStreamSink<String> sse_decode_StreamSink_String_Dco(
SseDeserializer deserializer);
RsProcess
sse_decode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
SseDeserializer deserializer);
@protected
RustStreamSink<RsProcessStreamData>
sse_decode_StreamSink_rs_process_stream_data_Dco(
SseDeserializer deserializer);
@protected
String sse_decode_String(SseDeserializer deserializer);
@protected
int sse_decode_box_autoadd_u_32(SseDeserializer deserializer);
@protected
int sse_decode_box_autoadd_u_64(SseDeserializer deserializer);
@ -126,6 +192,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
String? sse_decode_opt_String(SseDeserializer deserializer);
@protected
int? sse_decode_opt_box_autoadd_u_32(SseDeserializer deserializer);
@protected
int? sse_decode_opt_box_autoadd_u_64(SseDeserializer deserializer);
@ -136,12 +205,23 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
(String, String) sse_decode_record_string_string(
SseDeserializer deserializer);
@protected
RsProcessStreamData sse_decode_rs_process_stream_data(
SseDeserializer deserializer);
@protected
RsProcessStreamDataType sse_decode_rs_process_stream_data_type(
SseDeserializer deserializer);
@protected
RustHttpResponse sse_decode_rust_http_response(SseDeserializer deserializer);
@protected
int sse_decode_u_16(SseDeserializer deserializer);
@protected
int sse_decode_u_32(SseDeserializer deserializer);
@protected
int sse_decode_u_64(SseDeserializer deserializer);
@ -151,6 +231,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
void sse_decode_unit(SseDeserializer deserializer);
@protected
int sse_decode_usize(SseDeserializer deserializer);
@protected
bool sse_decode_bool(SseDeserializer deserializer);
@ -170,12 +253,14 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
}
@protected
ffi.Pointer<wire_cst_list_prim_u_8_strict> cst_encode_StreamSink_String_Dco(
RustStreamSink<String> raw) {
ffi.Pointer<wire_cst_list_prim_u_8_strict>
cst_encode_StreamSink_rs_process_stream_data_Dco(
RustStreamSink<RsProcessStreamData> raw) {
// Codec=Cst (C-struct based), see doc to use other codecs
return cst_encode_String(raw.setupAndSerialize(
codec: DcoCodec(
decodeSuccessData: dco_decode_String, decodeErrorData: null)));
decodeSuccessData: dco_decode_rs_process_stream_data,
decodeErrorData: null)));
}
@protected
@ -184,6 +269,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
return cst_encode_list_prim_u_8_strict(utf8.encoder.convert(raw));
}
@protected
ffi.Pointer<ffi.Uint32> cst_encode_box_autoadd_u_32(int raw) {
// Codec=Cst (C-struct based), see doc to use other codecs
return wire.cst_new_box_autoadd_u_32(cst_encode_u_32(raw));
}
@protected
ffi.Pointer<ffi.Uint64> cst_encode_box_autoadd_u_64(int raw) {
// Codec=Cst (C-struct based), see doc to use other codecs
@ -234,6 +325,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
return raw == null ? ffi.nullptr : cst_encode_String(raw);
}
@protected
ffi.Pointer<ffi.Uint32> cst_encode_opt_box_autoadd_u_32(int? raw) {
// Codec=Cst (C-struct based), see doc to use other codecs
return raw == null ? ffi.nullptr : cst_encode_box_autoadd_u_32(raw);
}
@protected
ffi.Pointer<ffi.Uint64> cst_encode_opt_box_autoadd_u_64(int? raw) {
// Codec=Cst (C-struct based), see doc to use other codecs
@ -260,6 +357,13 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
wireObj.field1 = cst_encode_String(apiObj.$2);
}
@protected
void cst_api_fill_to_wire_rs_process_stream_data(
RsProcessStreamData apiObj, wire_cst_rs_process_stream_data wireObj) {
wireObj.data_type = cst_encode_rs_process_stream_data_type(apiObj.dataType);
wireObj.data = cst_encode_String(apiObj.data);
}
@protected
void cst_api_fill_to_wire_rust_http_response(
RustHttpResponse apiObj, wire_cst_rust_http_response wireObj) {
@ -273,6 +377,22 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
wireObj.data = cst_encode_opt_list_prim_u_8_strict(apiObj.data);
}
@protected
int cst_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
RsProcess raw);
@protected
int cst_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
RsProcess raw);
@protected
int cst_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
RsProcess raw);
@protected
int cst_encode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
RsProcess raw);
@protected
int cst_encode_i_32(int raw);
@ -282,30 +402,62 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
int cst_encode_my_method(MyMethod raw);
@protected
int cst_encode_rs_process_stream_data_type(RsProcessStreamDataType raw);
@protected
int cst_encode_u_16(int raw);
@protected
int cst_encode_u_32(int raw);
@protected
int cst_encode_u_8(int raw);
@protected
void cst_encode_unit(void raw);
@protected
int cst_encode_usize(int raw);
@protected
void sse_encode_AnyhowException(
AnyhowException self, SseSerializer serializer);
@protected
void
sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
RsProcess self, SseSerializer serializer);
@protected
void
sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
RsProcess self, SseSerializer serializer);
@protected
void
sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
RsProcess self, SseSerializer serializer);
@protected
void sse_encode_Map_String_String(
Map<String, String> self, SseSerializer serializer);
@protected
void sse_encode_StreamSink_String_Dco(
RustStreamSink<String> self, SseSerializer serializer);
void
sse_encode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
RsProcess self, SseSerializer serializer);
@protected
void sse_encode_StreamSink_rs_process_stream_data_Dco(
RustStreamSink<RsProcessStreamData> self, SseSerializer serializer);
@protected
void sse_encode_String(String self, SseSerializer serializer);
@protected
void sse_encode_box_autoadd_u_32(int self, SseSerializer serializer);
@protected
void sse_encode_box_autoadd_u_64(int self, SseSerializer serializer);
@ -336,6 +488,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
void sse_encode_opt_String(String? self, SseSerializer serializer);
@protected
void sse_encode_opt_box_autoadd_u_32(int? self, SseSerializer serializer);
@protected
void sse_encode_opt_box_autoadd_u_64(int? self, SseSerializer serializer);
@ -347,6 +502,14 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
void sse_encode_record_string_string(
(String, String) self, SseSerializer serializer);
@protected
void sse_encode_rs_process_stream_data(
RsProcessStreamData self, SseSerializer serializer);
@protected
void sse_encode_rs_process_stream_data_type(
RsProcessStreamDataType self, SseSerializer serializer);
@protected
void sse_encode_rust_http_response(
RustHttpResponse self, SseSerializer serializer);
@ -354,6 +517,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
void sse_encode_u_16(int self, SseSerializer serializer);
@protected
void sse_encode_u_32(int self, SseSerializer serializer);
@protected
void sse_encode_u_64(int self, SseSerializer serializer);
@ -363,6 +529,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
@protected
void sse_encode_unit(void self, SseSerializer serializer);
@protected
void sse_encode_usize(int self, SseSerializer serializer);
@protected
void sse_encode_bool(bool self, SseSerializer serializer);
}
@ -499,15 +668,41 @@ class RustLibWire implements BaseWire {
late final _wire_set_default_header = _wire_set_default_headerPtr.asFunction<
void Function(int, ffi.Pointer<wire_cst_list_record_string_string>)>();
void wire_start_process(
WireSyncRust2DartDco wire_RsProcess_get_pid(
int that,
) {
return _wire_RsProcess_get_pid(
that,
);
}
late final _wire_RsProcess_get_pidPtr =
_lookup<ffi.NativeFunction<WireSyncRust2DartDco Function(ffi.UintPtr)>>(
'frbgen_starcitizen_doctor_wire_RsProcess_get_pid');
late final _wire_RsProcess_get_pid = _wire_RsProcess_get_pidPtr
.asFunction<WireSyncRust2DartDco Function(int)>();
WireSyncRust2DartDco wire_RsProcess_new() {
return _wire_RsProcess_new();
}
late final _wire_RsProcess_newPtr =
_lookup<ffi.NativeFunction<WireSyncRust2DartDco Function()>>(
'frbgen_starcitizen_doctor_wire_RsProcess_new');
late final _wire_RsProcess_new =
_wire_RsProcess_newPtr.asFunction<WireSyncRust2DartDco Function()>();
void wire_RsProcess_start(
int port_,
int that,
ffi.Pointer<wire_cst_list_prim_u_8_strict> executable,
ffi.Pointer<wire_cst_list_String> arguments,
ffi.Pointer<wire_cst_list_prim_u_8_strict> working_directory,
ffi.Pointer<wire_cst_list_prim_u_8_strict> stream_sink,
) {
return _wire_start_process(
return _wire_RsProcess_start(
port_,
that,
executable,
arguments,
working_directory,
@ -515,23 +710,91 @@ class RustLibWire implements BaseWire {
);
}
late final _wire_start_processPtr = _lookup<
late final _wire_RsProcess_startPtr = _lookup<
ffi.NativeFunction<
ffi.Void Function(
ffi.Int64,
ffi.UintPtr,
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
ffi.Pointer<wire_cst_list_String>,
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
'frbgen_starcitizen_doctor_wire_start_process');
late final _wire_start_process = _wire_start_processPtr.asFunction<
'frbgen_starcitizen_doctor_wire_RsProcess_start');
late final _wire_RsProcess_start = _wire_RsProcess_startPtr.asFunction<
void Function(
int,
int,
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
ffi.Pointer<wire_cst_list_String>,
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
void wire_RsProcess_write(
int port_,
int that,
ffi.Pointer<wire_cst_list_prim_u_8_strict> data,
) {
return _wire_RsProcess_write(
port_,
that,
data,
);
}
late final _wire_RsProcess_writePtr = _lookup<
ffi.NativeFunction<
ffi.Void Function(ffi.Int64, ffi.UintPtr,
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
'frbgen_starcitizen_doctor_wire_RsProcess_write');
late final _wire_RsProcess_write = _wire_RsProcess_writePtr.asFunction<
void Function(int, int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
void
rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
ffi.Pointer<ffi.Void> ptr,
) {
return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
ptr,
);
}
late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcessPtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
'frbgen_starcitizen_doctor_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess');
late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess =
_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcessPtr
.asFunction<void Function(ffi.Pointer<ffi.Void>)>();
void
rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
ffi.Pointer<ffi.Void> ptr,
) {
return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess(
ptr,
);
}
late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcessPtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
'frbgen_starcitizen_doctor_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess');
late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcess =
_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockRsProcessPtr
.asFunction<void Function(ffi.Pointer<ffi.Void>)>();
ffi.Pointer<ffi.Uint32> cst_new_box_autoadd_u_32(
int value,
) {
return _cst_new_box_autoadd_u_32(
value,
);
}
late final _cst_new_box_autoadd_u_32Ptr =
_lookup<ffi.NativeFunction<ffi.Pointer<ffi.Uint32> Function(ffi.Uint32)>>(
'frbgen_starcitizen_doctor_cst_new_box_autoadd_u_32');
late final _cst_new_box_autoadd_u_32 = _cst_new_box_autoadd_u_32Ptr
.asFunction<ffi.Pointer<ffi.Uint32> Function(int)>();
ffi.Pointer<ffi.Uint64> cst_new_box_autoadd_u_64(
int value,
) {
@ -641,6 +904,13 @@ final class wire_cst_list_String extends ffi.Struct {
external int len;
}
final class wire_cst_rs_process_stream_data extends ffi.Struct {
@ffi.Int32()
external int data_type;
external ffi.Pointer<wire_cst_list_prim_u_8_strict> data;
}
final class wire_cst_rust_http_response extends ffi.Struct {
@ffi.Uint16()
external int status_code;