From ab2a997a77c3f03ccad7c71df0a8638a730c4776 Mon Sep 17 00:00:00 2001 From: appflowy Date: Mon, 4 Oct 2021 17:47:21 +0800 Subject: [PATCH] fix warnings --- .../protobuf/flowy-document/revision.pb.dart | 16 +++--- .../flowy-document/revision.pbjson.dart | 4 +- backend/src/service/doc/edit/edit_doc.rs | 2 +- backend/src/service/doc/edit/interval.rs | 57 ------------------- backend/src/service/doc/edit/mod.rs | 1 - backend/tests/document/edit.rs | 1 - backend/tests/document/helper.rs | 2 +- rust-lib/dart-ffi/Cargo.toml | 8 +-- .../src/entities/doc/revision.rs | 10 ++-- rust-lib/flowy-document/src/module.rs | 1 - .../src/protobuf/model/revision.rs | 38 ++++++------- .../src/protobuf/proto/revision.proto | 2 +- .../src/services/doc/doc_controller.rs | 2 +- .../src/services/doc/edit/edit_doc.rs | 6 +- .../src/services/doc/edit/message.rs | 2 +- .../src/services/doc/revision/manager.rs | 19 ++----- .../src/services/doc/revision/model.rs | 11 +--- .../src/services/ws/ws_manager.rs | 3 +- .../src/deps_resolve/document_deps.rs | 2 +- .../src/services/user/user_session.rs | 2 +- 20 files changed, 56 insertions(+), 133 deletions(-) delete mode 100644 backend/src/service/doc/edit/interval.rs diff --git a/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-document/revision.pb.dart b/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-document/revision.pb.dart index 3eb85cf3bd..c6eeaed0fd 100644 --- a/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-document/revision.pb.dart +++ b/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-document/revision.pb.dart @@ -16,17 +16,17 @@ export 'revision.pbenum.dart'; class RevId extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'RevId', createEmptyInstance: create) - ..aInt64(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'inner') + ..aInt64(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') ..hasRequiredFields = false ; RevId._() : super(); factory RevId({ - $fixnum.Int64? inner, + $fixnum.Int64? value, }) { final _result = create(); - if (inner != null) { - _result.inner = inner; + if (value != null) { + _result.value = value; } return _result; } @@ -52,13 +52,13 @@ class RevId extends $pb.GeneratedMessage { static RevId? _defaultInstance; @$pb.TagNumber(1) - $fixnum.Int64 get inner => $_getI64(0); + $fixnum.Int64 get value => $_getI64(0); @$pb.TagNumber(1) - set inner($fixnum.Int64 v) { $_setInt64(0, v); } + set value($fixnum.Int64 v) { $_setInt64(0, v); } @$pb.TagNumber(1) - $core.bool hasInner() => $_has(0); + $core.bool hasValue() => $_has(0); @$pb.TagNumber(1) - void clearInner() => clearField(1); + void clearValue() => clearField(1); } class Revision extends $pb.GeneratedMessage { diff --git a/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-document/revision.pbjson.dart b/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-document/revision.pbjson.dart index 2096418b99..38fd8c0ccf 100644 --- a/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-document/revision.pbjson.dart +++ b/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-document/revision.pbjson.dart @@ -23,12 +23,12 @@ final $typed_data.Uint8List revTypeDescriptor = $convert.base64Decode('CgdSZXZUe const RevId$json = const { '1': 'RevId', '2': const [ - const {'1': 'inner', '3': 1, '4': 1, '5': 3, '10': 'inner'}, + const {'1': 'value', '3': 1, '4': 1, '5': 3, '10': 'value'}, ], }; /// Descriptor for `RevId`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List revIdDescriptor = $convert.base64Decode('CgVSZXZJZBIUCgVpbm5lchgBIAEoA1IFaW5uZXI='); +final $typed_data.Uint8List revIdDescriptor = $convert.base64Decode('CgVSZXZJZBIUCgV2YWx1ZRgBIAEoA1IFdmFsdWU='); @$core.Deprecated('Use revisionDescriptor instead') const Revision$json = const { '1': 'Revision', diff --git a/backend/src/service/doc/edit/edit_doc.rs b/backend/src/service/doc/edit/edit_doc.rs index 7001214af4..3b070e09a5 100644 --- a/backend/src/service/doc/edit/edit_doc.rs +++ b/backend/src/service/doc/edit/edit_doc.rs @@ -224,7 +224,7 @@ fn mk_acked_ws_message(revision: &Revision) -> WsMessageAdaptor { // let _ = wtr.write_i64::(revision.rev_id); let mut rev_id = RevId::new(); - rev_id.set_inner(revision.rev_id); + rev_id.set_value(revision.rev_id); let data = rev_id.write_to_bytes().unwrap(); let data = WsDocumentData { diff --git a/backend/src/service/doc/edit/interval.rs b/backend/src/service/doc/edit/interval.rs deleted file mode 100644 index 21d0342466..0000000000 --- a/backend/src/service/doc/edit/interval.rs +++ /dev/null @@ -1,57 +0,0 @@ -use std::cmp::{max, min}; - -#[derive(Clone, Copy, PartialEq, Eq)] -pub struct Interval { - pub start: i64, - pub end: i64, -} - -impl Interval { - /// Construct a new `Interval` representing the range [start..end). - /// It is an invariant that `start <= end`. - pub fn new(start: i64, end: i64) -> Interval { - debug_assert!(start <= end); - Interval { start, end } - } - - pub fn start(&self) -> i64 { self.start } - - pub fn end(&self) -> i64 { self.end } - - pub fn is_before(&self, val: i64) -> bool { self.end <= val } - - pub fn contains(&self, val: i64) -> bool { self.start <= val && val < self.end } - - pub fn contains_range(&self, start: i64, end: i64) -> bool { !self.intersect(Interval::new(start, end)).is_empty() } - - pub fn is_after(&self, val: i64) -> bool { self.start > val } - - pub fn is_empty(&self) -> bool { self.end <= self.start } - - pub fn intersect(&self, other: Interval) -> Interval { - let start = max(self.start, other.start); - let end = min(self.end, other.end); - Interval { - start, - end: max(start, end), - } - } - - // the first half of self - other - pub fn prefix(&self, other: Interval) -> Interval { - Interval { - start: min(self.start, other.start), - end: min(self.end, other.start), - } - } - - // the second half of self - other - pub fn suffix(&self, other: Interval) -> Interval { - Interval { - start: max(self.start, other.end), - end: max(self.end, other.end), - } - } - - pub fn size(&self) -> i64 { self.end - self.start } -} diff --git a/backend/src/service/doc/edit/mod.rs b/backend/src/service/doc/edit/mod.rs index 8fda81fea4..d55861229f 100644 --- a/backend/src/service/doc/edit/mod.rs +++ b/backend/src/service/doc/edit/mod.rs @@ -1,6 +1,5 @@ mod edit_actor; mod edit_doc; -mod interval; mod open_handle; pub use edit_actor::*; diff --git a/backend/tests/document/edit.rs b/backend/tests/document/edit.rs index 039c69ef31..c7182efafb 100644 --- a/backend/tests/document/edit.rs +++ b/backend/tests/document/edit.rs @@ -1,6 +1,5 @@ use crate::document::helper::{DocScript, DocumentTest}; use flowy_document::services::doc::{Document, FlowyDoc}; -use flowy_ot::core::Delta; #[actix_rt::test] async fn sync_doc_insert_text() { diff --git a/backend/tests/document/helper.rs b/backend/tests/document/helper.rs index 58cf18ba53..aac502ae5c 100644 --- a/backend/tests/document/helper.rs +++ b/backend/tests/document/helper.rs @@ -14,7 +14,7 @@ use flowy_user::services::user::UserSession; // use crate::helper::*; use crate::helper::{spawn_server, TestServer}; use flowy_document::protobuf::UpdateDocParams; -use flowy_ot::core::Delta; + use parking_lot::RwLock; use serde::__private::Formatter; diff --git a/rust-lib/dart-ffi/Cargo.toml b/rust-lib/dart-ffi/Cargo.toml index 0d02ce1b9f..ce7f26c91c 100644 --- a/rust-lib/dart-ffi/Cargo.toml +++ b/rust-lib/dart-ffi/Cargo.toml @@ -7,11 +7,11 @@ edition = "2018" [lib] name = "dart_ffi" # this value will change depending on the target os -# for iOS it would be `rlib` -# for Macos it would be `rlib` +# for iOS it would be `cdylib` +# for Macos it would be `cdylib` # for android it would be `c-dylib` -# default rlib -crate-type = ["rlib"] +# default cdylib +crate-type = ["cdylib"] [dependencies] diff --git a/rust-lib/flowy-document/src/entities/doc/revision.rs b/rust-lib/flowy-document/src/entities/doc/revision.rs index f6a9bc28bc..8f4bab96b3 100644 --- a/rust-lib/flowy-document/src/entities/doc/revision.rs +++ b/rust-lib/flowy-document/src/entities/doc/revision.rs @@ -39,23 +39,23 @@ impl std::default::Default for RevType { #[derive(Clone, Debug, ProtoBuf, Default)] pub struct RevId { #[pb(index = 1)] - pub inner: i64, + pub value: i64, } impl AsRef for RevId { - fn as_ref(&self) -> &i64 { &self.inner } + fn as_ref(&self) -> &i64 { &self.value } } impl std::convert::Into for RevId { - fn into(self) -> i64 { self.inner } + fn into(self) -> i64 { self.value } } impl std::convert::From for RevId { - fn from(value: i64) -> Self { RevId { inner: value } } + fn from(value: i64) -> Self { RevId { value } } } impl std::fmt::Display for RevId { - fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.write_fmt(format_args!("{}", self.inner)) } + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.write_fmt(format_args!("{}", self.value)) } } #[derive(PartialEq, Eq, Clone, Default, ProtoBuf)] diff --git a/rust-lib/flowy-document/src/module.rs b/rust-lib/flowy-document/src/module.rs index f234b3809b..cf6122ec46 100644 --- a/rust-lib/flowy-document/src/module.rs +++ b/rust-lib/flowy-document/src/module.rs @@ -1,7 +1,6 @@ use std::sync::Arc; use diesel::SqliteConnection; -use parking_lot::RwLock; use flowy_database::ConnectionPool; use flowy_net::config::ServerConfig; diff --git a/rust-lib/flowy-document/src/protobuf/model/revision.rs b/rust-lib/flowy-document/src/protobuf/model/revision.rs index c4c2c16132..a6378c2c4f 100644 --- a/rust-lib/flowy-document/src/protobuf/model/revision.rs +++ b/rust-lib/flowy-document/src/protobuf/model/revision.rs @@ -26,7 +26,7 @@ #[derive(PartialEq,Clone,Default)] pub struct RevId { // message fields - pub inner: i64, + pub value: i64, // special fields pub unknown_fields: ::protobuf::UnknownFields, pub cached_size: ::protobuf::CachedSize, @@ -43,19 +43,19 @@ impl RevId { ::std::default::Default::default() } - // int64 inner = 1; + // int64 value = 1; - pub fn get_inner(&self) -> i64 { - self.inner + pub fn get_value(&self) -> i64 { + self.value } - pub fn clear_inner(&mut self) { - self.inner = 0; + pub fn clear_value(&mut self) { + self.value = 0; } // Param is passed by value, moved - pub fn set_inner(&mut self, v: i64) { - self.inner = v; + pub fn set_value(&mut self, v: i64) { + self.value = v; } } @@ -73,7 +73,7 @@ impl ::protobuf::Message for RevId { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); } let tmp = is.read_int64()?; - self.inner = tmp; + self.value = tmp; }, _ => { ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?; @@ -87,8 +87,8 @@ impl ::protobuf::Message for RevId { #[allow(unused_variables)] fn compute_size(&self) -> u32 { let mut my_size = 0; - if self.inner != 0 { - my_size += ::protobuf::rt::value_size(1, self.inner, ::protobuf::wire_format::WireTypeVarint); + if self.value != 0 { + my_size += ::protobuf::rt::value_size(1, self.value, ::protobuf::wire_format::WireTypeVarint); } my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields()); self.cached_size.set(my_size); @@ -96,8 +96,8 @@ impl ::protobuf::Message for RevId { } fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> { - if self.inner != 0 { - os.write_int64(1, self.inner)?; + if self.value != 0 { + os.write_int64(1, self.value)?; } os.write_unknown_fields(self.get_unknown_fields())?; ::std::result::Result::Ok(()) @@ -138,9 +138,9 @@ impl ::protobuf::Message for RevId { descriptor.get(|| { let mut fields = ::std::vec::Vec::new(); fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>( - "inner", - |m: &RevId| { &m.inner }, - |m: &mut RevId| { &mut m.inner }, + "value", + |m: &RevId| { &m.value }, + |m: &mut RevId| { &mut m.value }, )); ::protobuf::reflect::MessageDescriptor::new_pb_name::( "RevId", @@ -158,7 +158,7 @@ impl ::protobuf::Message for RevId { impl ::protobuf::Clear for RevId { fn clear(&mut self) { - self.inner = 0; + self.value = 0; self.unknown_fields.clear(); } } @@ -799,8 +799,8 @@ impl ::protobuf::reflect::ProtobufValue for RevType { } static file_descriptor_proto_data: &'static [u8] = b"\ - \n\x0erevision.proto\"\x1d\n\x05RevId\x12\x14\n\x05inner\x18\x01\x20\x01\ - (\x03R\x05inner\"\xa3\x01\n\x08Revision\x12\x1e\n\x0bbase_rev_id\x18\x01\ + \n\x0erevision.proto\"\x1d\n\x05RevId\x12\x14\n\x05value\x18\x01\x20\x01\ + (\x03R\x05value\"\xa3\x01\n\x08Revision\x12\x1e\n\x0bbase_rev_id\x18\x01\ \x20\x01(\x03R\tbaseRevId\x12\x15\n\x06rev_id\x18\x02\x20\x01(\x03R\x05r\ evId\x12\x1d\n\ndelta_data\x18\x03\x20\x01(\x0cR\tdeltaData\x12\x10\n\ \x03md5\x18\x04\x20\x01(\tR\x03md5\x12\x15\n\x06doc_id\x18\x05\x20\x01(\ diff --git a/rust-lib/flowy-document/src/protobuf/proto/revision.proto b/rust-lib/flowy-document/src/protobuf/proto/revision.proto index c3aa8891f1..800e5de955 100644 --- a/rust-lib/flowy-document/src/protobuf/proto/revision.proto +++ b/rust-lib/flowy-document/src/protobuf/proto/revision.proto @@ -1,7 +1,7 @@ syntax = "proto3"; message RevId { - int64 inner = 1; + int64 value = 1; } message Revision { int64 base_rev_id = 1; diff --git a/rust-lib/flowy-document/src/services/doc/doc_controller.rs b/rust-lib/flowy-document/src/services/doc/doc_controller.rs index a272cda42f..b69aa9c056 100644 --- a/rust-lib/flowy-document/src/services/doc/doc_controller.rs +++ b/rust-lib/flowy-document/src/services/doc/doc_controller.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use bytes::Bytes; -use parking_lot::RwLock; + use tokio::time::{interval, Duration}; use flowy_database::{ConnectionPool, SqliteConnection}; diff --git a/rust-lib/flowy-document/src/services/doc/edit/edit_doc.rs b/rust-lib/flowy-document/src/services/doc/edit/edit_doc.rs index 8bcea83c58..f528a05569 100644 --- a/rust-lib/flowy-document/src/services/doc/edit/edit_doc.rs +++ b/rust-lib/flowy-document/src/services/doc/edit/edit_doc.rs @@ -212,7 +212,7 @@ impl ClientEditDoc { server_rev_id, } = rx.await.map_err(internal_error)??; - if self.rev_manager.rev_id() >= server_rev_id.0 { + if self.rev_manager.rev_id() >= server_rev_id.value { // Ignore this push revision if local_rev_id >= server_rev_id return Ok(()); } @@ -232,7 +232,7 @@ impl ClientEditDoc { // save the revision let revision = Revision::new( - server_rev_id.0, + server_rev_id.value, local_rev_id, client_prime.to_bytes().to_vec(), &self.doc_id, @@ -242,7 +242,7 @@ impl ClientEditDoc { // send the server_prime delta let revision = Revision::new( - server_rev_id.0, + server_rev_id.value, local_rev_id, server_prime.to_bytes().to_vec(), &self.doc_id, diff --git a/rust-lib/flowy-document/src/services/doc/edit/message.rs b/rust-lib/flowy-document/src/services/doc/edit/message.rs index 06cd4afb9c..80b2ff8aa2 100644 --- a/rust-lib/flowy-document/src/services/doc/edit/message.rs +++ b/rust-lib/flowy-document/src/services/doc/edit/message.rs @@ -1,7 +1,7 @@ use crate::{errors::DocResult, services::doc::UndoResult}; use flowy_ot::core::{Attribute, Delta, Interval}; -use crate::entities::doc::{RevId, Revision}; +use crate::entities::doc::RevId; use bytes::Bytes; use tokio::sync::oneshot; diff --git a/rust-lib/flowy-document/src/services/doc/revision/manager.rs b/rust-lib/flowy-document/src/services/doc/revision/manager.rs index 934121b92a..b60507ac79 100644 --- a/rust-lib/flowy-document/src/services/doc/revision/manager.rs +++ b/rust-lib/flowy-document/src/services/doc/revision/manager.rs @@ -1,20 +1,11 @@ use crate::{ - entities::doc::{RevId, RevType, Revision, RevisionRange}, + entities::doc::{RevId, Revision, RevisionRange}, errors::{internal_error, DocError}, - services::{ - doc::revision::store_actor::{RevisionCmd, RevisionStoreActor}, - util::RevIdCounter, - ws::DocumentWebSocket, - }, -}; -use flowy_infra::{ - future::ResultFuture, - retry::{ExponentialBackoff, Retry}, + services::{doc::revision::store_actor::RevisionCmd, util::RevIdCounter, ws::DocumentWebSocket}, }; +use flowy_infra::future::ResultFuture; use flowy_ot::core::Delta; -use flowy_ws::WsState; -use parking_lot::RwLock; -use std::{collections::VecDeque, sync::Arc}; + use tokio::sync::{mpsc, oneshot}; pub struct DocRevision { @@ -77,7 +68,7 @@ impl RevisionManager { let (ret, rx) = oneshot::channel(); let sender = self.rev_store.clone(); let _ = sender.send(RevisionCmd::SendRevisions { range, ret }).await; - let revisions = rx.await.map_err(internal_error)??; + let _revisions = rx.await.map_err(internal_error)??; unimplemented!() // Ok(()) diff --git a/rust-lib/flowy-document/src/services/doc/revision/model.rs b/rust-lib/flowy-document/src/services/doc/revision/model.rs index 987b14fcc2..d420c8b9cd 100644 --- a/rust-lib/flowy-document/src/services/doc/revision/model.rs +++ b/rust-lib/flowy-document/src/services/doc/revision/model.rs @@ -1,12 +1,5 @@ -use crate::{ - entities::doc::{NewDocUser, RevId, Revision}, - errors::{DocError, DocResult}, - services::ws::DocumentWebSocket, - sql_tables::RevState, -}; -use flowy_infra::retry::Action; -use futures::future::BoxFuture; -use std::{future, sync::Arc}; +use crate::{entities::doc::Revision, errors::DocResult, services::ws::DocumentWebSocket, sql_tables::RevState}; + use tokio::sync::oneshot; pub type Sender = oneshot::Sender>; diff --git a/rust-lib/flowy-document/src/services/ws/ws_manager.rs b/rust-lib/flowy-document/src/services/ws/ws_manager.rs index 7aab61d5b7..04c5c39a62 100644 --- a/rust-lib/flowy-document/src/services/ws/ws_manager.rs +++ b/rust-lib/flowy-document/src/services/ws/ws_manager.rs @@ -3,8 +3,7 @@ use bytes::Bytes; use dashmap::DashMap; use flowy_ws::WsState; -use std::{collections::HashMap, convert::TryInto, sync::Arc}; -use tokio::sync::broadcast::error::RecvError; +use std::{convert::TryInto, sync::Arc}; pub(crate) trait WsDocumentHandler: Send + Sync { fn receive(&self, data: WsDocumentData); diff --git a/rust-lib/flowy-sdk/src/deps_resolve/document_deps.rs b/rust-lib/flowy-sdk/src/deps_resolve/document_deps.rs index 67a3039697..93927d987f 100644 --- a/rust-lib/flowy-sdk/src/deps_resolve/document_deps.rs +++ b/rust-lib/flowy-sdk/src/deps_resolve/document_deps.rs @@ -8,7 +8,7 @@ use flowy_document::{ use flowy_document::{entities::ws::WsDocumentData, errors::internal_error, services::ws::WsStateReceiver}; use flowy_user::{errors::ErrorCode, services::user::UserSession}; use flowy_ws::{WsMessage, WsMessageHandler, WsModule}; -use parking_lot::RwLock; + use std::{path::Path, sync::Arc}; pub struct DocumentDepsResolver { diff --git a/rust-lib/flowy-user/src/services/user/user_session.rs b/rust-lib/flowy-user/src/services/user/user_session.rs index f76f999236..79677d3b28 100644 --- a/rust-lib/flowy-user/src/services/user/user_session.rs +++ b/rust-lib/flowy-user/src/services/user/user_session.rs @@ -19,7 +19,7 @@ use flowy_database::{ use flowy_infra::kv::KV; use flowy_net::config::ServerConfig; use flowy_sqlite::ConnectionPool; -use flowy_ws::{WsController, WsMessage, WsMessageHandler, WsState}; +use flowy_ws::{WsController, WsMessageHandler}; use parking_lot::RwLock; use serde::{Deserialize, Serialize}; use std::sync::Arc;