| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | import 'package:dartz/dartz.dart';import 'package:flowy_sdk/dispatch/dispatch.dart';import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';import 'package:flowy_sdk/protobuf/flowy-grid/block_entities.pb.dart';import 'package:flowy_sdk/protobuf/flowy-grid/grid_entities.pb.dart';import 'package:flowy_sdk/protobuf/flowy-grid/row_entities.pb.dart';class RowFFIService {  final String gridId;  final String blockId;  RowFFIService({    required this.gridId,    required this.blockId,  });  Future<Either<RowPB, FlowyError>> createRow(String rowId) {    final payload = CreateTableRowPayloadPB.create()      ..gridId = gridId      ..startRowId = rowId;    return GridEventCreateTableRow(payload).send();  }  Future<Either<OptionalRowPB, FlowyError>> getRow(String rowId) {    final payload = RowIdPB.create()      ..gridId = gridId      ..blockId = blockId      ..rowId = rowId;    return GridEventGetRow(payload).send();  }  Future<Either<Unit, FlowyError>> deleteRow(String rowId) {    final payload = RowIdPB.create()      ..gridId = gridId      ..blockId = blockId      ..rowId = rowId;    return GridEventDeleteRow(payload).send();  }  Future<Either<Unit, FlowyError>> duplicateRow(String rowId) {    final payload = RowIdPB.create()      ..gridId = gridId      ..blockId = blockId      ..rowId = rowId;    return GridEventDuplicateRow(payload).send();  }}class MoveRowFFIService {  final String gridId;  MoveRowFFIService({    required this.gridId,  });  Future<Either<Unit, FlowyError>> moveRow({    required String fromRowId,    required String toRowId,  }) {    var payload = MoveRowPayloadPB.create()      ..viewId = gridId      ..fromRowId = fromRowId      ..toRowId = toRowId;    return GridEventMoveRow(payload).send();  }}
 |