diff --git a/samples/embedder/futures.dart b/samples/embedder/futures.dart index 2feaf2a04cf..ae6e515373a 100644 --- a/samples/embedder/futures.dart +++ b/samples/embedder/futures.dart @@ -54,10 +54,9 @@ Stream produceIntStreamWithController(int count, int delayMs) { } Future sumIntStream(int count, int delayMs, bool useAsyncStar) async { - final stream = - useAsyncStar - ? produceIntStreamWithAsyncStar(count, delayMs) - : produceIntStreamWithController(count, delayMs); + final stream = useAsyncStar + ? produceIntStreamWithAsyncStar(count, delayMs) + : produceIntStreamWithController(count, delayMs); var sum = 0; await for (var value in stream) { sum += value; diff --git a/samples/ffi/sqlite/lib/src/bindings/bindings.dart b/samples/ffi/sqlite/lib/src/bindings/bindings.dart index c262829f05a..0a1b626eb9c 100644 --- a/samples/ffi/sqlite/lib/src/bindings/bindings.dart +++ b/samples/ffi/sqlite/lib/src/bindings/bindings.dart @@ -28,16 +28,18 @@ class _SQLiteBindings { /// an English language description of the error following a failure of any /// of the sqlite3_open() routines. late int Function( - Pointer filename, - Pointer> databaseOut, - int flags, - Pointer vfs) sqlite3_open_v2; + Pointer filename, + Pointer> databaseOut, + int flags, + Pointer vfs, + ) + sqlite3_open_v2; late int Function(Pointer database) sqlite3_close_v2; late Pointer> - sqlite3_close_v2_native; + sqlite3_close_v2_native; late Pointer database)>> - sqlite3_close_v2_native_return_void; + sqlite3_close_v2_native_return_void; /// Compiling An SQL Statement /// @@ -87,11 +89,13 @@ class _SQLiteBindings { /// original SQL text. This causes the [sqlite3_step] interface to /// behave differently in three ways: late int Function( - Pointer database, - Pointer query, - int nbytes, - Pointer> statementOut, - Pointer> tail) sqlite3_prepare_v2; + Pointer database, + Pointer query, + int nbytes, + Pointer> statementOut, + Pointer> tail, + ) + sqlite3_prepare_v2; /// Evaluate An SQL Statement /// @@ -219,9 +223,9 @@ class _SQLiteBindings { /// undesirable behavior such as segfaults and heap corruption. late int Function(Pointer statement) sqlite3_finalize; late Pointer> - sqlite3_finalize_native; + sqlite3_finalize_native; late Pointer statement)>> - sqlite3_finalize_native_return_void; + sqlite3_finalize_native_return_void; /// Number Of Columns In A Result Set /// @@ -254,7 +258,7 @@ class _SQLiteBindings { /// that column, if there is an AS clause. If there is no AS clause /// then the name of the column is unspecified and may change from late Pointer Function(Pointer statement, int columnIndex) - sqlite3_column_name; + sqlite3_column_name; /// CAPI3REF: Declared Datatype Of A Query Result /// @@ -284,22 +288,22 @@ class _SQLiteBindings { /// is associated with individual values, not with the containers /// used to hold those values. late Pointer Function(Pointer statement, int columnIndex) - sqlite3_column_decltype; + sqlite3_column_decltype; late int Function(Pointer statement, int columnIndex) - sqlite3_column_type; + sqlite3_column_type; late Pointer Function(Pointer statement, int columnIndex) - sqlite3_column_value; + sqlite3_column_value; late double Function(Pointer statement, int columnIndex) - sqlite3_column_double; + sqlite3_column_double; late int Function(Pointer statement, int columnIndex) - sqlite3_column_int; + sqlite3_column_int; late Pointer Function(Pointer statement, int columnIndex) - sqlite3_column_text; + sqlite3_column_text; /// The sqlite3_errstr() interface returns the English-language text that /// describes the result code, as UTF-8. Memory to hold the error message @@ -350,7 +354,8 @@ class _SQLiteBindings { sqlite3_close_v2 = sqlite3_close_v2_native.asFunction(); sqlite3_prepare_v2 = sqlite .lookup>( - "sqlite3_prepare_v2") + "sqlite3_prepare_v2", + ) .asFunction(); sqlite3_step = sqlite .lookup>("sqlite3_step") @@ -370,35 +375,43 @@ class _SQLiteBindings { .asFunction(); sqlite3_column_count = sqlite .lookup>( - "sqlite3_column_count") + "sqlite3_column_count", + ) .asFunction(); sqlite3_column_name = sqlite .lookup>( - "sqlite3_column_name") + "sqlite3_column_name", + ) .asFunction(); sqlite3_column_decltype = sqlite .lookup>( - "sqlite3_column_decltype") + "sqlite3_column_decltype", + ) .asFunction(); sqlite3_column_type = sqlite .lookup>( - "sqlite3_column_type") + "sqlite3_column_type", + ) .asFunction(); sqlite3_column_value = sqlite .lookup>( - "sqlite3_column_value") + "sqlite3_column_value", + ) .asFunction(); sqlite3_column_double = sqlite .lookup>( - "sqlite3_column_double") + "sqlite3_column_double", + ) .asFunction(); sqlite3_column_int = sqlite .lookup>( - "sqlite3_column_int") + "sqlite3_column_int", + ) .asFunction(); sqlite3_column_text = sqlite .lookup>( - "sqlite3_column_text") + "sqlite3_column_text", + ) .asFunction(); } } diff --git a/samples/ffi/sqlite/lib/src/bindings/signatures.dart b/samples/ffi/sqlite/lib/src/bindings/signatures.dart index 2f38dadb723..8db7ff2bc78 100644 --- a/samples/ffi/sqlite/lib/src/bindings/signatures.dart +++ b/samples/ffi/sqlite/lib/src/bindings/signatures.dart @@ -8,50 +8,57 @@ import "package:ffi/ffi.dart"; import "types.dart"; -typedef sqlite3_open_v2_native_t = Int32 Function(Pointer filename, - Pointer> ppDb, Int32 flags, Pointer vfs); +typedef sqlite3_open_v2_native_t = + Int32 Function( + Pointer filename, + Pointer> ppDb, + Int32 flags, + Pointer vfs, + ); typedef sqlite3_close_v2_native_t = Int32 Function(Pointer database); -typedef sqlite3_prepare_v2_native_t = Int32 Function( - Pointer database, - Pointer query, - Int32 nbytes, - Pointer> statementOut, - Pointer> tail); +typedef sqlite3_prepare_v2_native_t = + Int32 Function( + Pointer database, + Pointer query, + Int32 nbytes, + Pointer> statementOut, + Pointer> tail, + ); typedef sqlite3_step_native_t = Int32 Function(Pointer statement); typedef sqlite3_reset_native_t = Int32 Function(Pointer statement); -typedef sqlite3_finalize_native_t = Int32 Function( - Pointer statement); +typedef sqlite3_finalize_native_t = + Int32 Function(Pointer statement); typedef sqlite3_errstr_native_t = Pointer Function(Int32 error); -typedef sqlite3_errmsg_native_t = Pointer Function( - Pointer database); +typedef sqlite3_errmsg_native_t = + Pointer Function(Pointer database); -typedef sqlite3_column_count_native_t = Int32 Function( - Pointer statement); +typedef sqlite3_column_count_native_t = + Int32 Function(Pointer statement); -typedef sqlite3_column_name_native_t = Pointer Function( - Pointer statement, Int32 columnIndex); +typedef sqlite3_column_name_native_t = + Pointer Function(Pointer statement, Int32 columnIndex); -typedef sqlite3_column_decltype_native_t = Pointer Function( - Pointer statement, Int32 columnIndex); +typedef sqlite3_column_decltype_native_t = + Pointer Function(Pointer statement, Int32 columnIndex); -typedef sqlite3_column_type_native_t = Int32 Function( - Pointer statement, Int32 columnIndex); +typedef sqlite3_column_type_native_t = + Int32 Function(Pointer statement, Int32 columnIndex); -typedef sqlite3_column_value_native_t = Pointer Function( - Pointer statement, Int32 columnIndex); +typedef sqlite3_column_value_native_t = + Pointer Function(Pointer statement, Int32 columnIndex); -typedef sqlite3_column_double_native_t = Double Function( - Pointer statement, Int32 columnIndex); +typedef sqlite3_column_double_native_t = + Double Function(Pointer statement, Int32 columnIndex); -typedef sqlite3_column_int_native_t = Int32 Function( - Pointer statement, Int32 columnIndex); +typedef sqlite3_column_int_native_t = + Int32 Function(Pointer statement, Int32 columnIndex); -typedef sqlite3_column_text_native_t = Pointer Function( - Pointer statement, Int32 columnIndex); +typedef sqlite3_column_text_native_t = + Pointer Function(Pointer statement, Int32 columnIndex); diff --git a/samples/ffi/sqlite/lib/src/database.dart b/samples/ffi/sqlite/lib/src/database.dart index 23b173925ce..4037d5308a2 100644 --- a/samples/ffi/sqlite/lib/src/database.dart +++ b/samples/ffi/sqlite/lib/src/database.dart @@ -25,12 +25,18 @@ class Database { bool _open = false; /// Open a database located at the file [path]. - Database(String path, - [int flags = Flags.SQLITE_OPEN_READWRITE | Flags.SQLITE_OPEN_CREATE]) { + Database( + String path, [ + int flags = Flags.SQLITE_OPEN_READWRITE | Flags.SQLITE_OPEN_CREATE, + ]) { Pointer> dbOut = calloc(); final pathC = Utf8Resource(path.toNativeUtf8()); - final int resultCode = - bindings.sqlite3_open_v2(pathC.unsafe(), dbOut, flags, nullptr); + final int resultCode = bindings.sqlite3_open_v2( + pathC.unsafe(), + dbOut, + flags, + nullptr, + ); _database = DatabaseResource(dbOut.value); calloc.free(dbOut); pathC.free(); @@ -108,10 +114,12 @@ class Database { if (errorCode == null) { return SQLiteException(errorMessage); } - String errorCodeExplanation = - bindings.sqlite3_errstr(errorCode).toDartString(); + String errorCodeExplanation = bindings + .sqlite3_errstr(errorCode) + .toDartString(); return SQLiteException( - "$errorMessage (Code $errorCode: $errorCodeExplanation)"); + "$errorMessage (Code $errorCode: $errorCodeExplanation)", + ); } } @@ -185,8 +193,10 @@ class Row { /// By default it returns a dynamically typed value. If [convert] is set to /// [Convert.StaticType] the value is converted to the static type computed /// for the column by the query compiler. - dynamic readColumn(String columnName, - {Convert convert = Convert.DynamicType}) { + dynamic readColumn( + String columnName, { + Convert convert = Convert.DynamicType, + }) { return readColumnByIndex(_columnIndices[columnName]!, convert: convert); } @@ -195,16 +205,19 @@ class Row { /// By default it returns a dynamically typed value. If [convert] is set to /// [Convert.StaticType] the value is converted to the static type computed /// for the column by the query compiler. - dynamic readColumnByIndex(int columnIndex, - {Convert convert = Convert.DynamicType}) { + dynamic readColumnByIndex( + int columnIndex, { + Convert convert = Convert.DynamicType, + }) { _checkIsCurrentRow(); Type dynamicType; if (convert == Convert.DynamicType) { dynamicType = _typeFromCode(_statement.columnType(columnIndex)); } else { - dynamicType = - _typeFromText(_statement.columnDecltype(columnIndex).toDartString()); + dynamicType = _typeFromText( + _statement.columnDecltype(columnIndex).toDartString(), + ); } switch (dynamicType) { @@ -245,8 +258,9 @@ class Row { void _checkIsCurrentRow() { if (!_isCurrentRow) { throw Exception( - "This row is not the current row, reading data from the non-current" - " row is not supported by sqlite."); + "This row is not the current row, reading data from the non-current" + " row is not supported by sqlite.", + ); } } @@ -256,8 +270,9 @@ class Row { } class DatabaseResource implements Finalizable { - static final NativeFinalizer _finalizer = - NativeFinalizer(bindings.sqlite3_close_v2_native_return_void.cast()); + static final NativeFinalizer _finalizer = NativeFinalizer( + bindings.sqlite3_close_v2_native_return_void.cast(), + ); /// [_statement] must never escape [StatementResource], otherwise the /// [_finalizer] will run prematurely. @@ -272,10 +287,19 @@ class DatabaseResource implements Finalizable { return bindings.sqlite3_close_v2(_database); } - int prepare(Utf8Resource query, int nbytes, - Pointer> statementOut, Pointer> tail) { + int prepare( + Utf8Resource query, + int nbytes, + Pointer> statementOut, + Pointer> tail, + ) { int result = bindings.sqlite3_prepare_v2( - _database, query.unsafe(), nbytes, statementOut, tail); + _database, + query.unsafe(), + nbytes, + statementOut, + tail, + ); return result; } @@ -283,8 +307,9 @@ class DatabaseResource implements Finalizable { } class StatementResource implements Finalizable { - static final NativeFinalizer _finalizer = - NativeFinalizer(bindings.sqlite3_finalize_native_return_void.cast()); + static final NativeFinalizer _finalizer = NativeFinalizer( + bindings.sqlite3_finalize_native_return_void.cast(), + ); /// [_statement] must never escape [StatementResource], otherwise the /// [_finalizer] will run prematurely. diff --git a/samples/ffi/sqlite/test/sqlite_test.dart b/samples/ffi/sqlite/test/sqlite_test.dart index 4f8b833f683..dd175033066 100644 --- a/samples/ffi/sqlite/test/sqlite_test.dart +++ b/samples/ffi/sqlite/test/sqlite_test.dart @@ -47,10 +47,11 @@ void main() { final alternativeName = r.readColumn("alternative_name") as String?; dynamic multiTypedValue = r.readColumn("multi_typed_column"); expect( - true, - multiTypedValue == 42 || - multiTypedValue == 'foo' || - multiTypedValue == null); + true, + multiTypedValue == 42 || + multiTypedValue == 'foo' || + multiTypedValue == null, + ); print("$id $name $alternativeName $multiTypedValue"); } result = d.query(""" @@ -73,10 +74,11 @@ void main() { final alternativeName = r.readColumn("alternative_name") as String?; dynamic multiTypedValue = r.readColumn("multi_typed_column"); expect( - true, - multiTypedValue == 42 || - multiTypedValue == 'foo' || - multiTypedValue == null); + true, + multiTypedValue == 42 || + multiTypedValue == 'foo' || + multiTypedValue == null, + ); print("$id $name $alternativeName $multiTypedValue"); if (id == 2) { result.close();