SYMBOL INDEX (4805 symbols across 391 files) FILE: admin_frontend/src/askama_entities.rs type WorkspaceWithMembers (line 5) | pub struct WorkspaceWithMembers { FILE: admin_frontend/src/config.rs type Config (line 4) | pub struct Config { method from_env (line 22) | pub fn from_env() -> Result { type OAuthConfig (line 15) | pub struct OAuthConfig { function get_or_default (line 51) | fn get_or_default(key: &str, default: &str) -> String { function get_optional (line 61) | fn get_optional(key: &str) -> Option { FILE: admin_frontend/src/error.rs type WebApiError (line 10) | pub struct WebApiError<'a> { function new (line 16) | pub fn new(status_code: status::StatusCode, payload: S) -> Self method into_response (line 28) | fn into_response(self) -> axum::response::Response { function from (line 36) | fn from(v: gotrue_entity::error::GoTrueError) -> Self { function from (line 42) | fn from(v: redis::RedisError) -> Self { type WebAppError (line 47) | pub enum WebAppError { method from (line 79) | fn from(v: redis::RedisError) -> Self { method from (line 85) | fn from(v: askama::Error) -> Self { method from (line 91) | fn from(v: ext::error::Error) -> Self { method into_response (line 56) | fn into_response(self) -> axum::response::Response { function from (line 97) | fn from(v: ext::error::Error) -> Self { FILE: admin_frontend/src/ext/api.rs function get_user_owned_workspaces (line 14) | pub async fn get_user_owned_workspaces( function get_user_workspaces (line 27) | pub async fn get_user_workspaces( function get_user_workspace_limit (line 41) | pub async fn get_user_workspace_limit( function get_user_workspace_usages (line 55) | pub async fn get_user_workspace_usages( function get_workspace_members (line 95) | pub async fn get_workspace_members( function get_pending_workspace_invitations (line 113) | pub async fn get_pending_workspace_invitations( function get_accepted_workspace_invitations (line 130) | pub async fn get_accepted_workspace_invitations( function get_user_workspace_blob_usage (line 147) | async fn get_user_workspace_blob_usage( function get_user_workspace_doc_usage (line 165) | async fn get_user_workspace_doc_usage( function get_user_profile (line 184) | pub async fn get_user_profile( function invite_user_to_workspace (line 198) | pub async fn invite_user_to_workspace( function leave_workspace (line 226) | pub async fn leave_workspace( function accept_workspace_invitation (line 246) | pub async fn accept_workspace_invitation( function verify_token_cloud (line 266) | pub async fn verify_token_cloud( function delete_current_user (line 284) | pub async fn delete_current_user( FILE: admin_frontend/src/ext/entities.rs type JsonResponse (line 6) | pub struct JsonResponse { type UserUsageLimit (line 12) | pub struct UserUsageLimit { type WorkspaceUsageLimits (line 17) | pub struct WorkspaceUsageLimits { type WorkspaceMember (line 26) | pub struct WorkspaceMember { type WorkspaceBlobUsage (line 33) | pub struct WorkspaceBlobUsage { type WorkspaceDocUsage (line 38) | pub struct WorkspaceDocUsage { type UserProfile (line 44) | pub struct UserProfile { FILE: admin_frontend/src/ext/error.rs type Error (line 6) | pub enum Error { method from (line 14) | fn from(err: reqwest::Error) -> Self { method into_response (line 20) | fn into_response(self) -> Response { FILE: admin_frontend/src/ext/mod.rs function from_json_response (line 9) | async fn from_json_response(resp: reqwest::Response) -> Result Result<(), error::Er... FILE: admin_frontend/src/main.rs function main (line 21) | async fn main() { FILE: admin_frontend/src/models.rs type AppState (line 6) | pub struct AppState { method prepend_with_path_prefix (line 14) | pub fn prepend_with_path_prefix(&self, path: &str) -> String { type WebApiLoginRequest (line 20) | pub struct WebApiLoginRequest { type WebApiPutUserRequest (line 27) | pub struct WebApiPutUserRequest { type WebApiChangePasswordRequest (line 32) | pub struct WebApiChangePasswordRequest { type WebApiAdminCreateUserRequest (line 38) | pub struct WebApiAdminCreateUserRequest { type WebApiInviteUserRequest (line 45) | pub struct WebApiInviteUserRequest { type WebApiCreateSSOProviderRequest (line 50) | pub struct WebApiCreateSSOProviderRequest { type WebAppOAuthLoginRequest (line 57) | pub struct WebAppOAuthLoginRequest { type OAuthLoginAction (line 83) | pub enum OAuthLoginAction { type OAuthRedirect (line 88) | pub struct OAuthRedirect { type OAuthRedirectToken (line 99) | pub struct OAuthRedirectToken { type LoginParams (line 109) | pub struct LoginParams { FILE: admin_frontend/src/response.rs type WebApiResponse (line 6) | pub struct WebApiResponse function new (line 19) | pub fn new(message: Cow<'static, str>, data: T) -> Self { method into_response (line 32) | fn into_response(self) -> axum::response::Response { function from (line 41) | fn from(data: T) -> Self { function from_str (line 47) | pub fn from_str(message: Cow<'static, str>) -> Self { FILE: admin_frontend/src/session.rs type SessionStorage (line 20) | pub struct SessionStorage { method new (line 33) | pub fn new(redis_client: ConnectionManager) -> Self { method get_user_session (line 37) | pub async fn get_user_session( method get_code_session (line 46) | pub async fn get_code_session( method put_user_session (line 55) | pub async fn put_user_session(&self, user_session: &UserSession) -> re... method del_user_session (line 68) | pub async fn del_user_session(&self, session_id: &str) -> redis::Redis... method put_code_session (line 75) | pub async fn put_code_session( function session_id_key (line 24) | fn session_id_key(session_id: &str) -> String { function code_session_key (line 28) | fn code_session_key(code: &str) -> String { type CodeSession (line 94) | pub struct CodeSession { type CodeSessionOptional (line 99) | struct CodeSessionOptional(Option); method write_redis_args (line 102) | fn write_redis_args(&self, out: &mut W) method from_redis_value (line 112) | fn from_redis_value(v: &redis::Value) -> redis::RedisResult { type UserSession (line 125) | pub struct UserSession { type Rejection (line 133) | type Rejection = axum::response::Response; method from_request_parts (line 135) | async fn from_request_parts( type UserSessionOptional (line 129) | struct UserSessionOptional(Option); function get_session_from_store (line 173) | async fn get_session_from_store( function has_expired (line 222) | fn has_expired(access_token: &str) -> bool { function get_session_expiration (line 235) | fn get_session_expiration(access_token: &str) -> Option { method write_redis_args (line 248) | fn write_redis_args(&self, out: &mut W) method from_redis_value (line 258) | fn from_redis_value(v: &redis::Value) -> redis::RedisResult { function expect_redis_json_bytes (line 270) | fn expect_redis_json_bytes(v: &[u8]) -> redis::RedisResult function expect_redis_value_data (line 285) | fn expect_redis_value_data(v: &redis::Value) -> redis::RedisResult Cookie<'static> { FILE: admin_frontend/src/templates.rs type Redirect (line 9) | pub struct Redirect { type OpenAppFlowyOrDownload (line 15) | pub struct OpenAppFlowyOrDownload {} type LoginCallback (line 19) | pub struct LoginCallback {} type PaymentSuccessRedirect (line 23) | pub struct PaymentSuccessRedirect {} type UserUsage (line 27) | pub struct UserUsage { type WorkspaceUsageList (line 35) | pub struct WorkspaceUsageList { type SsoDetail (line 41) | pub struct SsoDetail { type SsoCreate (line 48) | pub struct SsoCreate; type SsoList (line 52) | pub struct SsoList { type ChangePassword (line 58) | pub struct ChangePassword; type Login (line 62) | pub struct Login<'a> { type LoginV2 (line 71) | pub struct LoginV2<'a> { type Home (line 80) | pub struct Home<'a> { type CreateUser (line 88) | pub struct CreateUser; type Invite (line 92) | pub struct Invite { type SharedWorkspaces (line 100) | pub struct SharedWorkspaces { type AdminNavigate (line 106) | pub struct AdminNavigate; type Navigate (line 110) | pub struct Navigate; type AdminHome (line 114) | pub struct AdminHome<'a> { type AdminUsers (line 121) | pub struct AdminUsers<'a> { type UserDetails (line 127) | pub struct UserDetails<'a> { type AdminUserDetails (line 133) | pub struct AdminUserDetails<'a> { function default (line 139) | pub fn default( FILE: admin_frontend/src/web_api.rs function router (line 34) | pub fn router() -> Router { function admin_delete_sso_handler (line 67) | async fn admin_delete_sso_handler( function admin_create_sso_handler (line 80) | async fn admin_create_sso_handler( function open_app_handler (line 116) | async fn open_app_handler( function delete_account_handler (line 131) | async fn delete_account_handler( function invite_handler (line 142) | async fn invite_handler( function workspace_invite_handler (line 164) | async fn workspace_invite_handler( function leave_workspace_handler (line 181) | async fn leave_workspace_handler( function invite_accept_handler (line 196) | async fn invite_accept_handler( function change_password_handler (line 211) | async fn change_password_handler( function post_oauth_login_handler (line 235) | async fn post_oauth_login_handler( function admin_update_user_handler (line 249) | async fn admin_update_user_handler( function post_user_generate_link_handler (line 270) | async fn post_user_generate_link_handler( function admin_delete_user_handler (line 288) | async fn admin_delete_user_handler( function admin_add_user_handler (line 306) | async fn admin_add_user_handler( function login_refresh_handler (line 324) | async fn login_refresh_handler( function sign_in_handler (line 352) | async fn sign_in_handler( function oauth_redirect_handler (line 382) | async fn oauth_redirect_handler( function oauth_redirect_token_handler (line 444) | async fn oauth_redirect_token_handler( function sign_up_handler (line 521) | async fn sign_up_handler( function logout_handler (line 554) | async fn logout_handler( function htmx_trigger (line 577) | fn htmx_trigger(trigger: &str) -> HeaderMap { function session_login (line 583) | async fn session_login( function send_magic_link (line 623) | async fn send_magic_link( function htmx_redirect (line 640) | fn htmx_redirect(url: &str) -> HeaderMap { function get_base_url (line 647) | fn get_base_url(header_map: &HeaderMap) -> String { function get_header_value_or_default (line 654) | fn get_header_value_or_default<'a>( function gen_rand_alpha_num (line 671) | fn gen_rand_alpha_num(n: usize) -> String { FILE: admin_frontend/src/web_app.rs function router (line 22) | pub fn router(state: AppState) -> Router { function page_router (line 28) | fn page_router() -> Router { function component_router (line 44) | fn component_router() -> Router { function open_appflowy_or_download_handler (line 66) | async fn open_appflowy_or_download_handler() -> Result, Web... function login_callback_handler (line 70) | async fn login_callback_handler() -> Result, WebAppError> { function payment_success_handler (line 74) | async fn payment_success_handler() -> Result, WebAppError> { function login_callback_query_handler (line 78) | async fn login_callback_query_handler( function admin_sso_detail_handler (line 203) | async fn admin_sso_detail_handler( function admin_sso_create_handler (line 223) | async fn admin_sso_create_handler() -> Result, WebAppError> { function admin_sso_handler (line 227) | async fn admin_sso_handler( function user_navigate_handler (line 242) | async fn user_navigate_handler() -> Result, WebAppError> { function admin_navigate_handler (line 246) | async fn admin_navigate_handler() -> Result, WebAppError> { function shared_workspaces_handler (line 250) | async fn shared_workspaces_handler( function user_invite_handler (line 271) | async fn user_invite_handler( function user_usage_handler (line 314) | async fn user_usage_handler( function workspace_usage_handler (line 342) | async fn workspace_usage_handler( function admin_users_create_handler (line 351) | async fn admin_users_create_handler() -> Result, WebAppErro... function user_user_handler (line 355) | async fn user_user_handler( function login_handler (line 367) | async fn login_handler( function login_v2_handler (line 405) | async fn login_v2_handler( function user_change_password_handler (line 436) | async fn user_change_password_handler() -> Result, WebAppEr... function home_handler (line 440) | pub async fn home_handler( function admin_home_handler (line 464) | async fn admin_home_handler( function admin_users_handler (line 479) | async fn admin_users_handler( function admin_user_details_handler (line 501) | async fn admin_user_details_handler( function render_template (line 515) | fn render_template(x: T) -> Result, WebAppError> function is_admin (line 523) | fn is_admin(user: &User) -> bool { FILE: admin_frontend/tests/oauth/mod.rs function oauth_sign_in (line 13) | async fn oauth_sign_in() { function extract_code_and_state (line 96) | fn extract_code_and_state(url_str: &str) -> (String, String) { FILE: admin_frontend/tests/utils/mod.rs type AdminFrontendClient (line 9) | pub struct AdminFrontendClient { method new (line 18) | pub fn new() -> Self { method web_api_sign_in (line 32) | pub async fn web_api_sign_in(&mut self, email: &str, password: &str) { method web_api_oauth_redirect (line 53) | pub async fn web_api_oauth_redirect( method web_api_oauth_redirect_token (line 75) | pub async fn web_api_oauth_redirect_token( method session_id (line 93) | fn session_id(&self) -> &str { function check_resp (line 98) | async fn check_resp(resp: reqwest::Response) -> reqwest::Response { FILE: admin_frontend/tests/utils/test_config.rs type TestConfig (line 1) | pub struct TestConfig { method from_env (line 6) | pub fn from_env() -> Self { FILE: libs/access-control/src/act.rs type Acts (line 7) | pub trait Acts { method policy_acts (line 8) | fn policy_acts(&self) -> Vec { method to_enforce_act (line 11) | fn to_enforce_act(&self) -> String; method from_enforce_act (line 12) | fn from_enforce_act(act: &str) -> Self; method to_enforce_act (line 25) | fn to_enforce_act(&self) -> String { method from_enforce_act (line 34) | fn from_enforce_act(act: &str) -> Self { method to_enforce_act (line 55) | fn to_enforce_act(&self) -> String { method from_enforce_act (line 63) | fn from_enforce_act(act: &str) -> Self { method to_enforce_act (line 105) | fn to_enforce_act(&self) -> String { method from_enforce_act (line 113) | fn from_enforce_act(act: &str) -> Self { type Action (line 75) | pub enum Action { method from (line 124) | fn from(method: &Method) -> Self { method partial_cmp (line 82) | fn partial_cmp(&self, other: &Self) -> Option { method cmp (line 88) | fn cmp(&self, other: &Self) -> Ordering { FILE: libs/access-control/src/casbin/access.rs type AccessControl (line 32) | pub struct AccessControl { method new (line 39) | pub async fn new( method with_enforcer (line 69) | pub fn with_enforcer(enforcer: AFEnforcerV2) -> Self { method update_policy (line 77) | pub async fn update_policy( method remove_policy (line 90) | pub async fn remove_policy(&self, sub: SubjectType, obj: ObjectType) -... method enforce_immediately (line 102) | pub async fn enforce_immediately( method enforce_strong (line 121) | pub async fn enforce_strong( method enforce_weak (line 136) | pub async fn enforce_weak(&self, uid: &i64, obj: ObjectType, act: T... constant MODEL_CONF (line 201) | pub const MODEL_CONF: &str = r###" function casbin_model (line 218) | pub async fn casbin_model() -> Result { function cmp_role_or_level (line 236) | pub fn cmp_role_or_level(r_act: ImmutableString, p_act: ImmutableString)... constant POLICY_FIELD_INDEX_SUBJECT (line 266) | pub const POLICY_FIELD_INDEX_SUBJECT: usize = 0; constant POLICY_FIELD_INDEX_OBJECT (line 267) | pub const POLICY_FIELD_INDEX_OBJECT: usize = 1; constant POLICY_FIELD_INDEX_ACTION (line 268) | pub const POLICY_FIELD_INDEX_ACTION: usize = 2; constant GROUPING_FIELD_INDEX_ROLE (line 275) | const GROUPING_FIELD_INDEX_ROLE: usize = 0; constant GROUPING_FIELD_INDEX_ACTION (line 277) | const GROUPING_FIELD_INDEX_ACTION: usize = 1; function load_group_policies (line 279) | pub(crate) async fn load_group_policies(enforcer: &mut CachedEnforcer) -... FILE: libs/access-control/src/casbin/adapter.rs type PgAdapter (line 22) | pub struct PgAdapter { method new (line 28) | pub fn new(pg_pool: PgPool, access_control_metrics: Arc Result<()> { method load_filtered_policy (line 114) | async fn load_filtered_policy<'a>(&mut self, m: &mut dyn Model, _f: Filt... method save_policy (line 118) | async fn save_policy(&mut self, _m: &mut dyn Model) -> Result<()> { method clear_policy (line 125) | async fn clear_policy(&mut self) -> Result<()> { method is_filtered (line 132) | fn is_filtered(&self) -> bool { method add_policy (line 136) | async fn add_policy(&mut self, _sec: &str, _ptype: &str, _rule: Vec Self { method enforce_action (line 27) | async fn enforce_action( method enforce_access_level (line 58) | async fn enforce_access_level( method update_access_level_policy (line 91) | async fn update_access_level_policy( method remove_access_level (line 102) | async fn remove_access_level(&self, _uid: &i64, _oid: &Uuid) -> Result<(... type RealtimeCollabAccessControlImpl (line 109) | pub struct RealtimeCollabAccessControlImpl { method new (line 114) | pub fn new(access_control: AccessControl) -> Self { method can_perform_action (line 118) | async fn can_perform_action( method can_write_collab (line 147) | async fn can_write_collab( method can_read_collab (line 158) | async fn can_read_collab( function test_collab_access_control (line 184) | pub async fn test_collab_access_control() { FILE: libs/access-control/src/casbin/enforcer.rs type RetryConfig (line 19) | pub(crate) struct RetryConfig { method default (line 33) | fn default() -> Self { type AFEnforcer (line 45) | pub struct AFEnforcer { method new (line 52) | pub async fn new(mut enforcer: CachedEnforcer) -> Result Duration { method retry_write_with_config (line 95) | pub(crate) async fn retry_write_with_config( method update_policy (line 190) | pub async fn update_policy( method remove_policy (line 229) | pub async fn remove_policy( method enforce_policy (line 277) | pub async fn enforce_policy( function test_enforcer (line 319) | pub async fn test_enforcer() -> AFEnforcer { function test_retry_config_defaults (line 330) | async fn test_retry_config_defaults() { function test_decorrelated_jitter_delay_calculation (line 340) | async fn test_decorrelated_jitter_delay_calculation() { function test_decorrelated_jitter_progression (line 358) | async fn test_decorrelated_jitter_progression() { function test_initial_jitter_generation (line 388) | async fn test_initial_jitter_generation() { function test_retry_write_success_on_first_attempt (line 409) | async fn test_retry_write_success_on_first_attempt() { function test_retry_write_with_custom_config (line 422) | async fn test_retry_write_with_custom_config() { function test_concurrent_retry_behavior (line 442) | async fn test_concurrent_retry_behavior() { function test_retry_timeout (line 492) | async fn test_retry_timeout() { function test_high_concurrency_jitter_effectiveness (line 537) | async fn test_high_concurrency_jitter_effectiveness() { function policy_comparison_test (line 602) | async fn policy_comparison_test() { function test_concurrent_update_policy_operations (line 686) | async fn test_concurrent_update_policy_operations() { function test_concurrent_update_policy_operations_with_count (line 692) | async fn test_concurrent_update_policy_operations_with_count(concurrent_... function test_scalable_concurrent_update_policy_operations (line 818) | async fn test_scalable_concurrent_update_policy_operations() { function test_concurrent_enforce_policy_operations (line 827) | async fn test_concurrent_enforce_policy_operations() { function test_mixed_concurrent_operations_realistic_scenario (line 925) | async fn test_mixed_concurrent_operations_realistic_scenario() { function test_high_contention_write_operations (line 1089) | async fn test_high_contention_write_operations() { FILE: libs/access-control/src/casbin/enforcer_v2.rs type ConsistencyMode (line 20) | pub enum ConsistencyMode { type PolicyCommand (line 32) | enum PolicyCommand { type AFEnforcerV2 (line 48) | pub struct AFEnforcerV2 { method new (line 63) | pub async fn new(enforcer: CachedEnforcer) -> Result { method new_with_redis (line 67) | pub async fn new_with_redis( method new_internal (line 88) | async fn new_internal(mut enforcer: CachedEnforcer) -> Result Resul... method update_policy (line 287) | pub async fn update_policy( method remove_policy (line 340) | pub async fn remove_policy( method enforce_policy (line 400) | pub async fn enforce_policy( method enforce_policy_with_consistency (line 419) | pub async fn enforce_policy_with_consistency( method wait_for_generation (line 478) | async fn wait_for_generation( method shutdown (line 514) | pub async fn shutdown(&self) -> Result<(), AppError> { function test_enforcer_v2 (line 535) | async fn test_enforcer_v2() -> AFEnforcerV2 { function test_v2_no_deadlock_scenario (line 546) | async fn test_v2_no_deadlock_scenario() { function test_v2_concurrent_operations (line 581) | async fn test_v2_concurrent_operations() { function test_v2_queue_ordering (line 631) | async fn test_v2_queue_ordering() { function test_v2_queue_capacity_limits (line 688) | async fn test_v2_queue_capacity_limits() { function test_v2_policy_query_consistency_during_rapid_updates (line 752) | async fn test_v2_policy_query_consistency_during_rapid_updates() { function test_v2_multiple_policies_accumulation (line 840) | async fn test_v2_multiple_policies_accumulation() { function test_v2_shutdown_with_pending_operations (line 919) | async fn test_v2_shutdown_with_pending_operations() { function test_v2_concurrent_read_write_race_conditions (line 969) | async fn test_v2_concurrent_read_write_race_conditions() { function test_v2_policy_removal_during_enforcement (line 1038) | async fn test_v2_policy_removal_during_enforcement() { function test_v2_high_throughput_mixed_operations (line 1133) | async fn test_v2_high_throughput_mixed_operations() { function test_v2_empty_policy_removal (line 1234) | async fn test_v2_empty_policy_removal() { function test_v2_policy_enforcement_accuracy (line 1257) | async fn test_v2_policy_enforcement_accuracy() { function test_v2_consistency_modes (line 1330) | async fn test_v2_consistency_modes() { function test_v2_consistency_timeout (line 1423) | async fn test_v2_consistency_timeout() { FILE: libs/access-control/src/casbin/performance_comparison_tests.rs function create_v1_enforcer (line 61) | async fn create_v1_enforcer() -> AFEnforcer { function create_v2_enforcer (line 71) | async fn create_v2_enforcer() -> AFEnforcerV2 { function test_enforce_policy_baseline_performance (line 95) | async fn test_enforce_policy_baseline_performance() { function test_enforce_policy_under_write_load (line 191) | async fn test_enforce_policy_under_write_load() { function test_enforce_policy_latency_distribution (line 369) | async fn test_enforce_policy_latency_distribution() { function test_mixed_workload_throughput (line 475) | async fn test_mixed_workload_throughput() { FILE: libs/access-control/src/casbin/redis_cache.rs constant CACHE_HKEY (line 6) | const CACHE_HKEY: &str = "ac:cache:v1"; constant CACHE_TTL_SECONDS (line 7) | const CACHE_TTL_SECONDS: usize = 600; type RedisCache (line 9) | pub struct RedisCache { function new (line 18) | pub fn new(redis_url: T) -> RedisResult Option { function has (line 53) | fn has(&self, k: &K) -> bool { function set (line 69) | fn set(&self, k: K, v: V) { function clear (line 88) | fn clear(&self) { function test_set_has_get_clear (line 102) | fn test_set_has_get_clear() { function test_ttl_expiration (line 131) | fn test_ttl_expiration() { FILE: libs/access-control/src/casbin/util.rs function policies_for_subject_with_given_object (line 6) | pub(crate) async fn policies_for_subject_with_given_object( function test_enforcer_v2 (line 28) | pub async fn test_enforcer_v2() -> AFEnforcerV2 { FILE: libs/access-control/src/casbin/workspace.rs type WorkspaceAccessControlImpl (line 13) | pub struct WorkspaceAccessControlImpl { method new (line 18) | pub fn new(access_control: AccessControl) -> Self { method enforce_role_strong (line 25) | async fn enforce_role_strong( method enforce_role_weak (line 43) | async fn enforce_role_weak( method enforce_action (line 61) | async fn enforce_action( method insert_role (line 79) | async fn insert_role( method remove_user_from_workspace (line 97) | async fn remove_user_from_workspace( function test_workspace_access_control (line 135) | pub async fn test_workspace_access_control() { FILE: libs/access-control/src/collab.rs type CollabAccessControl (line 8) | pub trait CollabAccessControl: Sync + Send + 'static { method enforce_action (line 11) | async fn enforce_action( method enforce_access_level (line 21) | async fn enforce_access_level( method update_access_level_policy (line 30) | async fn update_access_level_policy( method remove_access_level (line 37) | async fn remove_access_level(&self, uid: &i64, oid: &Uuid) -> Result<(... type RealtimeAccessControl (line 41) | pub trait RealtimeAccessControl: Sync + Send + 'static { method can_write_collab (line 49) | async fn can_write_collab( method can_read_collab (line 60) | async fn can_read_collab( FILE: libs/access-control/src/entity.rs type SubjectType (line 2) | pub enum SubjectType { method policy_subject (line 8) | pub fn policy_subject(&self) -> String { type ObjectType (line 18) | pub enum ObjectType { method policy_object (line 26) | pub fn policy_object(&self) -> String { method object_id (line 33) | pub fn object_id(&self) -> String { FILE: libs/access-control/src/metrics.rs constant ENFORCER_METRICS_TICK_INTERVAL (line 9) | pub const ENFORCER_METRICS_TICK_INTERVAL: Duration = Duration::from_secs... type AccessControlMetrics (line 12) | pub struct AccessControlMetrics { method init (line 22) | pub(crate) fn init() -> Self { method register (line 33) | pub fn register(registry: &mut Registry) -> Self { method record_load_all_policies_in_ms (line 75) | pub fn record_load_all_policies_in_ms(&self, millis: u64) { method record_enforce_count (line 79) | pub fn record_enforce_count(&self, total: i64, from_cache: i64) { method record_policy_send_metrics (line 84) | pub fn record_policy_send_metrics(&self, attempts: i64, failures: i64,... type MetricsCalState (line 92) | pub(crate) struct MetricsCalState { method new (line 101) | pub(crate) fn new() -> Self { function tick_metric (line 113) | pub(crate) fn tick_metric(state: MetricsCalState, metrics: Arc Self { method default (line 21) | fn default() -> Self { method enforce_action (line 28) | async fn enforce_action( method enforce_access_level (line 38) | async fn enforce_access_level( method update_access_level_policy (line 48) | async fn update_access_level_policy( method remove_access_level (line 57) | async fn remove_access_level(&self, _uid: &i64, _oid: &Uuid) -> Result<(... type RealtimeCollabAccessControlImpl (line 63) | pub struct RealtimeCollabAccessControlImpl; method new (line 66) | pub fn new() -> Self { method default (line 72) | fn default() -> Self { method can_write_collab (line 79) | async fn can_write_collab( method can_read_collab (line 88) | async fn can_read_collab( FILE: libs/access-control/src/noops/workspace.rs type WorkspaceAccessControlImpl (line 10) | pub struct WorkspaceAccessControlImpl; method new (line 13) | pub fn new() -> Self { method default (line 19) | fn default() -> Self { method enforce_role_strong (line 26) | async fn enforce_role_strong( method enforce_role_weak (line 35) | async fn enforce_role_weak( method enforce_action (line 44) | async fn enforce_action( method insert_role (line 53) | async fn insert_role( method remove_user_from_workspace (line 62) | async fn remove_user_from_workspace( FILE: libs/access-control/src/request.rs type PolicyRequest (line 4) | pub struct PolicyRequest { method new (line 11) | pub fn new(uid: i64, object_type: ObjectType, action: T) -> Self method to_policy (line 22) | pub fn to_policy(&self) -> Vec { FILE: libs/access-control/src/workspace.rs type WorkspaceAccessControl (line 8) | pub trait WorkspaceAccessControl: Send + Sync + 'static { method enforce_role_strong (line 11) | async fn enforce_role_strong( method enforce_role_weak (line 18) | async fn enforce_role_weak( method enforce_action (line 27) | async fn enforce_action( method insert_role (line 34) | async fn insert_role(&self, uid: &i64, workspace_id: &Uuid, role: AFRole) method remove_user_from_workspace (line 37) | async fn remove_user_from_workspace( FILE: libs/app-error/src/gotrue.rs type GoTrueError (line 7) | pub enum GoTrueError { method is_network_error (line 34) | pub fn is_network_error(&self) -> bool { method from (line 43) | fn from(value: reqwest::Error) -> Self { type GoTrueErrorSerde (line 68) | pub struct GoTrueErrorSerde { method fmt (line 75) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type GotrueClientError (line 87) | pub struct GotrueClientError { method fmt (line 94) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { FILE: libs/app-error/src/lib.rs type AppError (line 16) | pub enum AppError { method is_not_enough_permissions (line 217) | pub fn is_not_enough_permissions(&self) -> bool { method is_record_not_found (line 221) | pub fn is_record_not_found(&self) -> bool { method is_network_error (line 225) | pub fn is_network_error(&self) -> bool { method is_unauthorized (line 229) | pub fn is_unauthorized(&self) -> bool { method code (line 233) | pub fn code(&self) -> ErrorCode { method from (line 308) | fn from(error: reqwest::Error) -> Self { method from (line 354) | fn from(value: sqlx::Error) -> Self { method from (line 368) | fn from(err: crate::gotrue::GoTrueError) -> Self { method from (line 391) | fn from(err: String) -> Self { method status_code (line 511) | fn status_code(&self) -> actix_web::http::StatusCode { method error_response (line 515) | fn error_response(&self) -> actix_web::HttpResponse { method from (line 522) | fn from(err: AIError) -> Self { method from (line 536) | fn from(err: async_openai::error::OpenAIError) -> Self { method from (line 551) | fn from(err: TungsteniteError) -> Self { method from (line 567) | fn from(err: tokio_tungstenite::tungstenite::http::header::InvalidHead... type ErrorCode (line 408) | pub enum ErrorCode { method value (line 489) | pub fn value(&self) -> i32 { type AppErrorSerde (line 495) | struct AppErrorSerde { method from (line 501) | fn from(value: &AppError) -> Self { FILE: libs/appflowy-ai-client/src/client.rs constant AI_MODEL_HEADER_KEY (line 20) | const AI_MODEL_HEADER_KEY: &str = "ai-model"; type AppFlowyAIClient (line 23) | pub struct AppFlowyAIClient { method new (line 29) | pub fn new(url: &str) -> Self { method health_check (line 36) | pub async fn health_check(&self) -> Result<(), AIError> { method stream_completion_text (line 44) | pub async fn stream_completion_text( method stream_completion_v2 (line 63) | pub async fn stream_completion_v2( method summarize_row (line 82) | pub async fn summarize_row( method translate_row (line 104) | pub async fn translate_row( method search_documents (line 121) | pub async fn search_documents( method create_chat_text_context (line 136) | pub async fn create_chat_text_context(&self, context: CreateChatContex... method send_question (line 147) | pub async fn send_question( method stream_question (line 181) | pub async fn stream_question( method stream_question_v2 (line 215) | pub async fn stream_question_v2( method stream_question_v3 (line 241) | pub async fn stream_question_v3( method get_related_question (line 258) | pub async fn get_related_question( method regenerate_image (line 276) | pub async fn regenerate_image(&self, source_metadata: Value) -> Result... method get_local_ai_package (line 289) | pub async fn get_local_ai_package( method get_local_ai_config (line 300) | pub async fn get_local_ai_config( method get_model_list (line 319) | pub async fn get_model_list(&self) -> Result { method calculate_similarity (line 328) | pub async fn calculate_similarity( method async_http_client (line 343) | fn async_http_client(&self, method: Method, url: &str) -> Result { function from_reqwest_response (line 362) | pub async fn from_reqwest_response(resp: reqwest::Response) -> Result Result Result { function stream_response (line 392) | pub async fn stream_response( method from (line 412) | fn from(error: reqwest::Error) -> Self { function collect_stream_text (line 441) | pub async fn collect_stream_text(stream: impl Stream Self { type OutputLayout (line 56) | pub enum OutputLayout { type OutputContent (line 67) | pub enum OutputContent { method is_image (line 75) | pub fn is_image(&self) -> bool { type OutputContentMetadata (line 81) | pub struct OutputContentMetadata { function default_image_model (line 106) | fn default_image_model() -> String { function default_image_size (line 110) | fn default_image_size() -> Option { function default_image_quality (line 114) | fn default_image_quality() -> Option { type MessageData (line 119) | pub struct MessageData { type ChatAnswer (line 128) | pub struct ChatAnswer { type RepeatedRelatedQuestion (line 135) | pub struct RepeatedRelatedQuestion { type RelatedQuestion (line 141) | pub struct RelatedQuestion { type CompleteTextResponse (line 149) | pub struct CompleteTextResponse { type CompletionType (line 155) | pub enum CompletionType { type SearchDocumentsRequest (line 167) | pub struct SearchDocumentsRequest { function serialize_workspaces (line 176) | fn serialize_workspaces(workspaces: &Vec, serializer: S) -> R... type Document (line 185) | pub struct Document { type CollabType (line 195) | pub enum CollabType { type TranslateRowParams (line 206) | pub struct TranslateRowParams { type TranslateRowData (line 213) | pub struct TranslateRowData { type TranslateItem (line 220) | pub struct TranslateItem { type TranslateRowResponse (line 225) | pub struct TranslateRowResponse { type EmbeddingModel (line 230) | pub enum EmbeddingModel { method default_model (line 245) | pub fn default_model() -> Self { method supported_models (line 249) | pub fn supported_models() -> &'static [&'static str] { method max_token (line 257) | pub fn max_token(&self) -> usize { method default_dimensions (line 265) | pub fn default_dimensions(&self) -> u32 { method name (line 273) | pub fn name(&self) -> &'static str { method from_name (line 281) | pub fn from_name(name: &str) -> Option { method fmt (line 292) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type RepeatedLocalAIPackage (line 302) | pub struct RepeatedLocalAIPackage(pub Vec); type AppFlowyOfflineAI (line 305) | pub struct AppFlowyOfflineAI { type LLMModel (line 314) | pub struct LLMModel { type ModelInfo (line 322) | pub struct ModelInfo { type LocalAIConfig (line 332) | pub struct LocalAIConfig { type AvailableModel (line 338) | pub struct AvailableModel { type ModelList (line 345) | pub struct ModelList { type CreateChatContext (line 350) | pub struct CreateChatContext { method new (line 360) | pub fn new(chat_id: String, context_loader: String, text: String) -> S... method with_metadata (line 371) | pub fn with_metadata(mut self, metadata: T) -> Self { method fmt (line 378) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type CustomPrompt (line 390) | pub struct CustomPrompt { type CalculateSimilarityParams (line 395) | pub struct CalculateSimilarityParams { type SimilarityResponse (line 403) | pub struct SimilarityResponse { type CompletionMessage (line 408) | pub struct CompletionMessage { type CompletionMetadata (line 414) | pub struct CompletionMetadata { type CompleteTextParams (line 440) | pub struct CompleteTextParams { method new_with_completion_type (line 451) | pub fn new_with_completion_type( FILE: libs/appflowy-ai-client/src/error.rs type AIError (line 2) | pub enum AIError { FILE: libs/appflowy-ai-client/tests/chat_test/completion_test.rs function completion_explain_test (line 9) | async fn completion_explain_test() { function completion_image_test (line 33) | async fn completion_image_test() { function continue_writing_test (line 61) | async fn continue_writing_test() { function make_text_shorter_text (line 82) | async fn make_text_shorter_text() { function custom_prompt_test (line 104) | async fn custom_prompt_test() { FILE: libs/appflowy-ai-client/tests/chat_test/context_test.rs function create_chat_context_test (line 4) | async fn create_chat_context_test() { FILE: libs/appflowy-ai-client/tests/chat_test/model_config_test.rs function get_model_list_test (line 4) | async fn get_model_list_test() { FILE: libs/appflowy-ai-client/tests/chat_test/qa_test.rs function qa_test (line 4) | async fn qa_test() { function download_package_test (line 31) | async fn download_package_test() { function get_local_ai_config_test (line 39) | async fn get_local_ai_config_test() { FILE: libs/appflowy-ai-client/tests/index_test/index_search_test.rs function index_search (line 5) | async fn index_search() { FILE: libs/appflowy-ai-client/tests/main.rs function appflowy_ai_client (line 12) | pub fn appflowy_ai_client() -> AppFlowyAIClient { function setup_log (line 17) | pub fn setup_log() { FILE: libs/appflowy-ai-client/tests/row_test/summarize_test.rs function summarize_row_test (line 5) | async fn summarize_row_test() { FILE: libs/appflowy-ai-client/tests/row_test/translate_test.rs function translate_row_test (line 6) | async fn translate_row_test() { FILE: libs/appflowy-proto/build.rs function main (line 3) | fn main() -> Result<(), Box> { FILE: libs/appflowy-proto/src/client_message.rs type ClientMessage (line 18) | pub enum ClientMessage { method object_id (line 115) | pub fn object_id(&self) -> &ObjectId { method into_bytes (line 126) | pub fn into_bytes(self) -> Result, Error> { method from_bytes (line 133) | pub fn from_bytes(bytes: &[u8]) -> Result { type Error (line 201) | type Error = Error; method try_from (line 203) | fn try_from(value: pb::Message) -> Result { method fmt (line 62) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function from (line 142) | fn from(value: ClientMessage) -> Self { FILE: libs/appflowy-proto/src/pb/collab.rs type Rid (line 9) | pub struct Rid { type SyncRequest (line 25) | pub struct SyncRequest { type Update (line 42) | pub struct Update { type AwarenessUpdate (line 65) | pub struct AwarenessUpdate { type AccessChanged (line 74) | pub struct AccessChanged { type CollabMessage (line 86) | pub struct CollabMessage { type Data (line 101) | pub enum Data { FILE: libs/appflowy-proto/src/pb/messages.rs type Message (line 5) | pub struct Message { type Payload (line 12) | pub enum Payload { FILE: libs/appflowy-proto/src/pb/notification.rs type WorkspaceNotification (line 3) | pub struct WorkspaceNotification { type Payload (line 10) | pub enum Payload { type UserProfileChange (line 18) | pub struct UserProfileChange { type PermissionChanged (line 27) | pub struct PermissionChanged { FILE: libs/appflowy-proto/src/server_message.rs type AccessChangedReason (line 21) | pub enum AccessChangedReason { method from (line 346) | fn from(value: i32) -> Self { method from (line 356) | fn from(value: u32) -> Self { method fmt (line 27) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type ServerMessage (line 36) | pub enum ServerMessage { method into_bytes (line 68) | pub fn into_bytes(self) -> Result, Error> { method from_bytes (line 72) | pub fn from_bytes(bytes: &[u8]) -> Result { type Error (line 249) | type Error = Error; method try_from (line 251) | fn try_from(value: pb::Message) -> Result { method fmt (line 79) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function from (line 151) | fn from(value: ServerMessage) -> Self { type WorkspaceNotification (line 327) | pub enum WorkspaceNotification { function from (line 340) | fn from(value: AccessChangedReason) -> Self { FILE: libs/appflowy-proto/src/shared.rs type WorkspaceId (line 6) | pub type WorkspaceId = Uuid; type ObjectId (line 7) | pub type ObjectId = Uuid; type Rid (line 11) | pub struct Rid { method new (line 17) | pub fn new(timestamp: u64, seq_no: u16) -> Self { method from_bytes (line 21) | pub fn from_bytes(bytes: &[u8]) -> Result { method into_bytes (line 32) | pub fn into_bytes(&self) -> [u8; 10] { method fmt (line 41) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type Err (line 47) | type Err = String; method from_str (line 49) | fn from_str(s: &str) -> Result { type UpdateFlags (line 67) | pub enum UpdateFlags { type Error (line 74) | type Error = Error; method try_from (line 76) | fn try_from(value: u8) -> Result { type Error (line 86) | pub enum Error { type TimestampedEncodedCollab (line 105) | pub struct TimestampedEncodedCollab { FILE: libs/client-api-entity/src/id.rs function user_awareness_object_id (line 3) | pub fn user_awareness_object_id(user_uuid: &Uuid, workspace_id: &Uuid) -... FILE: libs/client-api-test/src/assertion_utils.rs type JsonAssertable (line 24) | pub trait JsonAssertable { method get_json (line 26) | async fn get_json(&self) -> Result; method assert_json_eventually (line 29) | async fn assert_json_eventually( method assert_json_key_eventually (line 59) | async fn assert_json_key_eventually( function assert_server_collab_eventually (line 94) | pub async fn assert_server_collab_eventually( function collab_response_to_json (line 141) | fn collab_response_to_json(response: &CollabResponse, object_id: Uuid) -... function wait_for_sync_complete (line 161) | pub async fn wait_for_sync_complete( FILE: libs/client-api-test/src/async_utils.rs function retry_with_backoff (line 9) | pub async fn retry_with_backoff(operation: F, config: RetryCo... function retry_with_constant_interval (line 52) | pub async fn retry_with_constant_interval( function retry_api_with_constant_interval (line 94) | pub async fn retry_api_with_constant_interval( function poll_until (line 149) | pub async fn poll_until(condition: F, config: RetryConfig) -> Re... function poll_until_some (line 168) | pub async fn poll_until_some(operation: F, config: RetryConfi... function poll_until_ok (line 186) | pub async fn poll_until_ok(operation: F, config: RetryConf... function wait_for_all_conditions (line 204) | pub async fn wait_for_all_conditions( function test_retry_with_backoff_success (line 232) | async fn test_retry_with_backoff_success() { function test_poll_until_some (line 262) | async fn test_poll_until_some() { FILE: libs/client-api-test/src/client.rs function get_env_var (line 26) | fn get_env_var<'default>(key: &str, default: &'default str) -> Cow<'defa... function localhost_client (line 41) | pub fn localhost_client() -> Client { function localhost_client_with_device_id (line 46) | pub fn localhost_client_with_device_id(device_id: &str) -> Client { function workspace_id_from_client (line 57) | pub async fn workspace_id_from_client(c: &Client) -> Uuid { FILE: libs/client-api-test/src/database_util.rs type TestDatabaseCollabService (line 16) | pub struct TestDatabaseCollabService { method new (line 24) | pub fn new(api_client: client_api::Client, workspace_id: Uuid, client_... method reader_client_id (line 36) | async fn reader_client_id(&self) -> ClientID { method reader_get_collab (line 40) | async fn reader_get_collab( method reader_batch_get_collabs (line 61) | async fn reader_batch_get_collabs( method database_row_cache (line 100) | fn database_row_cache(&self) -> Option bool { function load_env (line 19) | pub fn load_env() { function ai_test_enabled (line 27) | pub fn ai_test_enabled() -> bool { function setup_log (line 39) | pub fn setup_log() { function setup_log (line 64) | pub fn setup_log() {} FILE: libs/client-api-test/src/test_client.rs type TestClient (line 61) | pub struct TestClient { method new (line 84) | pub async fn new(registered_user: User, start_ws_conn: bool) -> Self { method random_client_id (line 91) | fn random_client_id() -> ClientID { method client_id (line 95) | pub async fn client_id(&self, _workspace_id: &Uuid) -> ClientID { method insert_into (line 99) | pub async fn insert_into(&self, object_id: &Uuid, key: &str... method new_with_device_id (line 105) | pub async fn new_with_device_id( method new_user (line 140) | pub async fn new_user() -> Self { method new_user_without_ws_conn (line 148) | pub async fn new_user_without_ws_conn() -> Self { method disable_receive_message (line 153) | pub fn disable_receive_message(&mut self) { method enable_receive_message (line 157) | pub fn enable_receive_message(&mut self) { method insert_view_to_general_space (line 161) | pub async fn insert_view_to_general_space( method get_folder (line 206) | pub async fn get_folder(&self, workspace_id: Uuid) -> Folder { method get_database (line 227) | pub async fn get_database(&self, workspace_id: Uuid, database_id: &str... method get_document (line 237) | pub async fn get_document(&self, workspace_id: Uuid, document_id: Uuid... method get_workspace_database (line 245) | pub async fn get_workspace_database(&self, workspace_id: Uuid) -> Work... method get_connect_users (line 272) | pub async fn get_connect_users(&self, object_id: &Uuid) -> Vec { method clean_awareness_state (line 292) | pub async fn clean_awareness_state(&self, object_id: &Uuid) { method emit_awareness_state (line 299) | pub async fn emit_awareness_state(&self, object_id: &Uuid) { method user_with_new_device (line 312) | pub async fn user_with_new_device(registered_user: User) -> Self { method get_user_workspace_info (line 316) | pub async fn get_user_workspace_info(&self) -> AFUserWorkspaceInfo { method open_workspace (line 320) | pub async fn open_workspace(&self, workspace_id: &Uuid) -> AFWorkspace { method get_user_folder (line 324) | pub async fn get_user_folder(&self) -> Folder { method get_workspace_database_collab (line 345) | pub async fn get_workspace_database_collab(&self, workspace_id: Uuid) ... method create_document_collab (line 356) | pub async fn create_document_collab(&self, workspace_id: Uuid, object_... method get_db_collab_from_view (line 367) | pub async fn get_db_collab_from_view(&mut self, workspace_id: Uuid, vi... method get_user_awareness (line 387) | pub async fn get_user_awareness(&self) -> UserAwareness { method try_update_workspace_member (line 409) | pub async fn try_update_workspace_member( method invite_and_accepted_workspace_member (line 425) | pub async fn invite_and_accepted_workspace_member( method try_remove_workspace_member (line 466) | pub async fn try_remove_workspace_member( method get_workspace_members (line 478) | pub async fn get_workspace_members(&self, workspace_id: &Uuid) -> Vec<... method try_get_workspace_members (line 486) | pub async fn try_get_workspace_members( method get_workspace_member (line 493) | pub async fn get_workspace_member(&self, workspace_id: Uuid, user_id: ... method try_get_workspace_member (line 501) | pub async fn try_get_workspace_member( method wait_object_sync_complete (line 514) | pub async fn wait_object_sync_complete(&self, object_id: &Uuid) -> Res... method wait_object_sync_complete_with_secs (line 520) | pub async fn wait_object_sync_complete_with_secs( method get_blob_metadata (line 543) | pub async fn get_blob_metadata(&self, workspace_id: &Uuid, file_id: &s... method upload_blob (line 548) | pub async fn upload_blob>(&self, file_id: &str, data: T... method delete_file (line 554) | pub async fn delete_file(&self, file_id: &str) { method get_workspace_usage (line 560) | pub async fn get_workspace_usage(&self) -> WorkspaceSpaceUsage { method workspace_id (line 569) | pub async fn workspace_id(&self) -> Uuid { method email (line 580) | pub async fn email(&self) -> String { method uid (line 584) | pub async fn uid(&self) -> i64 { method get_user_profile (line 588) | pub async fn get_user_profile(&self) -> AFUserProfile { method wait_until_all_embedding (line 592) | pub async fn wait_until_all_embedding( method wait_until_get_embedding (line 620) | pub async fn wait_until_get_embedding( method wait_unit_get_search_result (line 644) | pub async fn wait_unit_get_search_result( method assert_similarity (line 673) | pub async fn assert_similarity( method create_collab_list (line 698) | pub async fn create_collab_list( method get_collab (line 709) | pub async fn get_collab( method get_collab_to_collab (line 727) | pub async fn get_collab_to_collab( method batch_get_collab (line 742) | pub async fn batch_get_collab( method create_and_edit_collab (line 751) | pub async fn create_and_edit_collab( method create_and_edit_collab_with_data (line 764) | pub async fn create_and_edit_collab_with_data( method open_workspace_collab (line 846) | pub async fn open_workspace_collab(&mut self, workspace_id: Uuid) { method open_collab (line 853) | pub async fn open_collab( method open_collab_with_doc_state (line 865) | pub async fn open_collab_with_doc_state( method create_collab_with_data (line 920) | pub async fn create_collab_with_data( method post_realtime_binary (line 951) | pub async fn post_realtime_binary(&self, message: Vec) -> Result<(... method disconnect (line 959) | pub async fn disconnect(&self) { method reconnect (line 963) | pub async fn reconnect(&self) { method get_edit_collab_json (line 967) | pub async fn get_edit_collab_json(&self, object_id: &Uuid) -> Value { method publish_collabs (line 973) | pub async fn publish_collabs( method duplicate_published_to_workspace (line 1005) | pub async fn duplicate_published_to_workspace( type TestCollab (line 68) | pub struct TestCollab { method encode_collab (line 75) | pub async fn encode_collab(&self) -> EncodedCollab { function assert_client_collab_value (line 1028) | pub async fn assert_client_collab_value( method get_json (line 1048) | async fn get_json(&self) -> Result { function assert_server_collab (line 1054) | pub async fn assert_server_collab( function assert_client_collab_within_secs (line 1110) | pub async fn assert_client_collab_within_secs( function assert_client_collab_include_value (line 1147) | pub async fn assert_client_collab_include_value( function collect_answer (line 1183) | pub async fn collect_answer(mut stream: QuestionStream) -> String { function collect_completion_v2 (line 1198) | pub async fn collect_completion_v2(mut stream: CompletionStream) -> (Str... FILE: libs/client-api-test/src/test_client_config.rs type TestClientConstants (line 5) | pub struct TestClientConstants; constant DEFAULT_TIMEOUT_SECS (line 8) | pub const DEFAULT_TIMEOUT_SECS: u64 = 30; constant DEFAULT_POLL_INTERVAL_MS (line 9) | pub const DEFAULT_POLL_INTERVAL_MS: u64 = 1000; constant MAX_RETRY_COUNT (line 10) | pub const MAX_RETRY_COUNT: u32 = 10; constant SYNC_TIMEOUT_SECS (line 11) | pub const SYNC_TIMEOUT_SECS: u64 = 60; constant EMBEDDING_TIMEOUT_SECS (line 12) | pub const EMBEDDING_TIMEOUT_SECS: u64 = 30; constant EMBEDDING_POLL_INTERVAL_MS (line 13) | pub const EMBEDDING_POLL_INTERVAL_MS: u64 = 2000; constant SEARCH_POLL_INTERVAL_MS (line 14) | pub const SEARCH_POLL_INTERVAL_MS: u64 = 1500; constant SNAPSHOT_POLL_INTERVAL_SECS (line 15) | pub const SNAPSHOT_POLL_INTERVAL_SECS: u64 = 5; type RetryConfig (line 20) | pub struct RetryConfig { method for_embedding (line 37) | pub fn for_embedding() -> Self { method for_sync (line 45) | pub fn for_sync() -> Self { method for_search (line 53) | pub fn for_search() -> Self { method default (line 27) | fn default() -> Self { type AssertionConfig (line 64) | pub struct AssertionConfig { method default (line 72) | fn default() -> Self { FILE: libs/client-api-test/src/test_client_v2.rs type CollabRef (line 71) | pub type CollabRef = Arc + Send + Sync + 's... type TestClient (line 73) | pub struct TestClient { method new (line 86) | pub async fn new(registered_user: User, start_ws_conn: bool) -> Self { method new_with_device_id (line 94) | pub async fn new_with_device_id( method new_user (line 153) | pub async fn new_user() -> Self { method new_user_without_ws_conn (line 163) | pub async fn new_user_without_ws_conn() -> Self { method user_with_new_device (line 169) | pub async fn user_with_new_device(registered_user: User) -> Self { method insert_into (line 175) | pub async fn insert_into(&self, object_id: &Uuid, key: &str... method client_id (line 181) | pub async fn client_id(&self, workspace_id: &Uuid) -> ClientID { method subscribe_workspace_notification (line 186) | pub fn subscribe_workspace_notification( method disable_receive_message (line 199) | pub fn disable_receive_message(&mut self) { method enable_receive_message (line 204) | pub fn enable_receive_message(&mut self) { method insert_view_to_general_space (line 208) | pub async fn insert_view_to_general_space( method get_folder (line 253) | pub async fn get_folder(&self, workspace_id: Uuid) -> Folder { method get_database (line 274) | pub async fn get_database(&self, workspace_id: Uuid, database_id: &str... method get_document (line 285) | pub async fn get_document(&self, workspace_id: Uuid, document_id: Uuid... method get_workspace_database (line 293) | pub async fn get_workspace_database(&self, workspace_id: Uuid) -> Work... method get_connect_users (line 320) | pub async fn get_connect_users(&self, object_id: &Uuid) -> Vec { method clean_awareness_state (line 340) | pub async fn clean_awareness_state(&self, object_id: &Uuid) { method emit_awareness_state (line 347) | pub async fn emit_awareness_state(&self, object_id: &Uuid) { method get_user_workspace_info (line 354) | pub async fn get_user_workspace_info(&self) -> AFUserWorkspaceInfo { method open_workspace (line 358) | pub async fn open_workspace(&self, workspace_id: &Uuid) -> AFWorkspace { method get_user_folder (line 363) | pub async fn get_user_folder(&self) -> Folder { method get_workspace_database_collab (line 384) | pub async fn get_workspace_database_collab(&self, workspace_id: Uuid) ... method create_document_collab (line 396) | pub async fn create_document_collab(&self, workspace_id: Uuid, object_... method get_db_collab_from_view (line 407) | pub async fn get_db_collab_from_view(&mut self, workspace_id: Uuid, vi... method get_user_awareness (line 427) | pub async fn get_user_awareness(&self) -> UserAwareness { method try_update_workspace_member (line 452) | pub async fn try_update_workspace_member( method invite_and_accepted_workspace_member (line 468) | pub async fn invite_and_accepted_workspace_member( method try_remove_workspace_member (line 509) | pub async fn try_remove_workspace_member( method get_workspace_members (line 521) | pub async fn get_workspace_members(&self, workspace_id: &Uuid) -> Vec<... method try_get_workspace_members (line 529) | pub async fn try_get_workspace_members( method get_workspace_member (line 536) | pub async fn get_workspace_member(&self, workspace_id: Uuid, user_id: ... method try_get_workspace_member (line 544) | pub async fn try_get_workspace_member( method wait_object_sync_complete (line 558) | pub async fn wait_object_sync_complete(&self, object_id: &Uuid) -> Res... method wait_object_sync_complete_with_secs (line 565) | pub async fn wait_object_sync_complete_with_secs( method get_blob_metadata (line 598) | pub async fn get_blob_metadata(&self, workspace_id: &Uuid, file_id: &s... method upload_blob (line 603) | pub async fn upload_blob>(&self, file_id: &str, data: T... method delete_file (line 609) | pub async fn delete_file(&self, file_id: &str) { method get_workspace_usage (line 615) | pub async fn get_workspace_usage(&self) -> WorkspaceSpaceUsage { method workspace_id (line 625) | pub async fn workspace_id(&self) -> Uuid { method email (line 637) | pub async fn email(&self) -> String { method uid (line 642) | pub async fn uid(&self) -> i64 { method get_user_profile (line 647) | pub async fn get_user_profile(&self) -> AFUserProfile { method wait_until_all_embedding (line 652) | pub async fn wait_until_all_embedding( method wait_until_get_embedding (line 685) | pub async fn wait_until_get_embedding( method wait_unit_get_search_result (line 704) | pub async fn wait_unit_get_search_result( method assert_similarity (line 733) | pub async fn assert_similarity( method create_collab_list (line 758) | pub async fn create_collab_list( method get_collab (line 769) | pub async fn get_collab( method get_collab_to_collab (line 787) | pub async fn get_collab_to_collab( method batch_get_collab (line 802) | pub async fn batch_get_collab( method workspace_controller_for (line 810) | async fn workspace_controller_for(&self, workspace_id: Uuid) -> Arc) -> Result<(... method disconnect (line 1002) | pub async fn disconnect(&self) { method reconnect (line 1006) | pub async fn reconnect(&self) { method get_edit_collab_json (line 1015) | pub async fn get_edit_collab_json(&self, object_id: &Uuid) -> Value { method publish_collabs (line 1021) | pub async fn publish_collabs( method duplicate_published_to_workspace (line 1053) | pub async fn duplicate_published_to_workspace( method get_collab_assertable (line 1102) | pub fn get_collab_assertable(&self, object_id: &Uuid) -> Option<&TestC... type TestCollab (line 1076) | pub struct TestCollab { method encode_collab (line 1083) | pub async fn encode_collab(&self) -> EncodedCollab { method get_json (line 1093) | async fn get_json(&self) -> Result { function assert_server_collab (line 1109) | pub async fn assert_server_collab( function assert_client_collab_value (line 1133) | pub async fn assert_client_collab_value( function assert_client_collab_within_secs (line 1152) | pub async fn assert_client_collab_within_secs( function assert_client_collab_include_value (line 1176) | pub async fn assert_client_collab_include_value( function collect_answer (line 1195) | pub async fn collect_answer(mut stream: QuestionStream) -> String { function collect_completion_v2 (line 1211) | pub async fn collect_completion_v2(mut stream: CompletionStream) -> (Str... FILE: libs/client-api-test/src/user.rs type User (line 19) | pub struct User { function generate_unique_email (line 24) | pub fn generate_unique_email() -> String { function admin_user_client (line 28) | pub async fn admin_user_client() -> Client { function generate_unique_registered_user_with_email (line 44) | pub async fn generate_unique_registered_user_with_email(email: &str) -> ... function generate_unique_registered_user_client_with_email (line 59) | pub async fn generate_unique_registered_user_client_with_email(email: &s... function generate_unique_registered_user (line 70) | pub async fn generate_unique_registered_user() -> User { function generate_unique_registered_user_client (line 75) | pub async fn generate_unique_registered_user_client() -> (Client, User) { function generate_sign_in_action_link (line 81) | pub async fn generate_sign_in_action_link(email: &str) -> String { function api_client_with_email (line 92) | pub async fn api_client_with_email(user_email: &str) -> client_api::Clie... function localhost_gotrue_client (line 114) | pub fn localhost_gotrue_client() -> gotrue::api::Client { FILE: libs/client-api-test/src/workspace_ops.rs type WorkspaceManager (line 12) | pub struct WorkspaceManager { method new (line 19) | pub fn new(device_id: String, temp_dir: Arc) -> Self { method get_or_create_workspace (line 28) | pub async fn get_or_create_workspace( method create_workspace_controller (line 49) | async fn create_workspace_controller( method get_workspace_db_path (line 71) | async fn get_workspace_db_path(&self, workspace_id: Uuid) -> Result Result<(), Er... method disconnect_all (line 100) | pub async fn disconnect_all(&self) -> Result<(), Error> { method get_workspace (line 120) | pub fn get_workspace(&self, workspace_id: &Uuid) -> Option { method drop (line 42) | fn drop(&mut self) { function new (line 57) | pub fn new( function queue_msg (line 127) | pub fn queue_msg(&self, f: impl FnOnce(MsgId) -> ClientCollabMessage) { function queue_init_sync (line 144) | pub fn queue_init_sync(&self, f: impl FnOnce(MsgId) -> ClientCollabMessa... function did_queue_init_sync (line 157) | pub fn did_queue_init_sync(&self) -> bool { function should_queue_init_sync (line 164) | pub fn should_queue_init_sync(&self) -> bool { function clear (line 174) | pub fn clear(&self) { function pause (line 179) | pub fn pause(&self) { function resume (line 187) | pub fn resume(&self) { function validate_response (line 197) | pub async fn validate_response( function process_next_msg (line 275) | async fn process_next_msg(&self) { function send_immediately (line 305) | async fn send_immediately(&self, items: Vec>) { type CollabSinkRunner (line 462) | pub struct CollabSinkRunner; method run (line 466) | pub async fn run( type MsgIdCounter (line 497) | pub trait MsgIdCounter: Send + Sync + 'static { method next (line 499) | fn next(&self) -> MsgId; type DefaultMsgIdCounter (line 503) | pub struct DefaultMsgIdCounter(Arc); method new (line 506) | pub fn new() -> Self { method next (line 509) | pub(crate) fn next(&self) -> MsgId { type SyncTimestamp (line 514) | pub(crate) struct SyncTimestamp { method new (line 519) | fn new() -> Self { method is_time_for_next_sync (line 528) | pub async fn is_time_for_next_sync(&self, duration: Duration) -> bool { method update_timestamp (line 532) | async fn update_timestamp(&self) { type CollabSinkState (line 538) | pub(crate) struct CollabSinkState { method new (line 546) | fn new() -> Self { type CollabSyncState (line 558) | pub enum CollabSyncState { method is_syncing (line 566) | pub fn is_syncing(&self) -> bool { type SinkSignal (line 572) | pub enum SinkSignal { type SinkQueue (line 578) | pub(crate) struct SinkQueue { function new (line 586) | pub(crate) fn new() -> Self { function push_msg (line 592) | pub(crate) fn push_msg(&mut self, msg_id: MsgId, msg: Msg) { type Target (line 605) | type Target = BinaryHeap>; method deref (line 607) | fn deref(&self) -> &Self::Target { method deref_mut (line 616) | fn deref_mut(&mut self) -> &mut Self::Target { type QueueItem (line 622) | pub(crate) struct QueueItem { function new (line 631) | pub fn new(msg: Msg, msg_id: MsgId) -> Self { function message (line 635) | pub fn message(&self) -> &Msg { function into_message (line 639) | pub fn into_message(self) -> Msg { function msg_id (line 643) | pub fn msg_id(&self) -> MsgId { function mergeable (line 652) | pub fn mergeable(&self) -> bool { function merge (line 656) | pub fn merge(&mut self, other: &Self, max_size: &usize) -> Result bool { method partial_cmp (line 676) | fn partial_cmp(&self, other: &Self) -> Option { method cmp (line 685) | fn cmp(&self, other: &Self) -> std::cmp::Ordering { FILE: libs/client-api/src/collab_sync/collab_stream.rs type CollabRef (line 31) | pub type CollabRef = Weak + Send + Sync + '... type ObserveCollab (line 34) | pub struct ObserveCollab { method drop (line 47) | fn drop(&mut self) { function new (line 59) | pub fn new( function periodic_sync_step_1 (line 103) | async fn periodic_sync_step_1( function observer_collab_message (line 141) | async fn observer_collab_message( function process_remote_message (line 239) | async fn process_remote_message( function pull_missing_updates (line 298) | async fn pull_missing_updates( function process_message_follow_protocol (line 311) | async fn process_message_follow_protocol( type SeqNumCounter (line 386) | pub struct SeqNumCounter { method store_ack_seq_num (line 399) | pub fn store_ack_seq_num(&self, seq_num: u32) -> u32 { method store_broadcast_seq_num (line 424) | pub fn store_broadcast_seq_num(&self, broadcast_seq_num: u32) -> u32 { method check_broadcast_contiguous (line 453) | pub fn check_broadcast_contiguous( method check_ack_broadcast_contiguous (line 472) | pub fn check_ack_broadcast_contiguous(&self, object_id: &Uuid) -> Resu... FILE: libs/client-api/src/collab_sync/error.rs type SyncError (line 5) | pub enum SyncError { method from (line 81) | fn from(value: RTProtocolError) -> Self { method is_cannot_apply_update (line 100) | pub fn is_cannot_apply_update(&self) -> bool { type MissUpdateReason (line 47) | pub enum MissUpdateReason { method fmt (line 55) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { FILE: libs/client-api/src/collab_sync/plugin.rs type SyncPlugin (line 29) | pub struct SyncPlugin { method drop (line 40) | fn drop(&mut self) { function new (line 59) | pub fn new( method plugin_type (line 145) | fn plugin_type(&self) -> CollabPluginType { method did_init (line 149) | fn did_init(&self, _collab: &Collab, _object_id: &str) { method receive_local_update (line 168) | fn receive_local_update(&self, origin: &CollabOrigin, _object_id: &str, ... method receive_local_state (line 182) | fn receive_local_state( method start_init_sync (line 200) | fn start_init_sync(&self) { method destroy (line 214) | fn destroy(&self) { type SyncObject (line 222) | pub struct SyncObject { method new (line 230) | pub fn new( type Error (line 246) | type Error = anyhow::Error; method try_from (line 247) | fn try_from(collab_object: CollabObject) -> Result { type InitSyncAction (line 257) | pub(crate) struct InitSyncAction { type Future (line 268) | type Future = Pin Self::Future { type InitSyncRetryCondition (line 296) | pub(crate) struct InitSyncRetryCondition { method should_retry (line 300) | fn should_retry(&mut self, _error: &anyhow::Error) -> bool { FILE: libs/client-api/src/collab_sync/sync_control.rs constant DEFAULT_SYNC_TIMEOUT (line 25) | pub const DEFAULT_SYNC_TIMEOUT: u64 = 10; type SyncControl (line 27) | pub struct SyncControl { method drop (line 42) | fn drop(&mut self) { function new (line 55) | pub fn new( function pause (line 98) | pub fn pause(&self) { function resume (line 103) | pub fn resume(&self) { function subscribe_sync_state (line 108) | pub fn subscribe_sync_state(&self) -> broadcast::Receiver) -> std::fmt::Result { function gen_sync_state (line 153) | fn gen_sync_state( function gen_missing_updates (line 162) | fn gen_missing_updates(collab: &Collab, sv: StateVector) -> Result( type Target (line 261) | type Target = Arc>; method deref (line 263) | fn deref(&self) -> &Self::Target { type SinkConfig (line 268) | pub struct SinkConfig { method new (line 277) | pub fn new() -> Self { method send_timeout (line 280) | pub fn send_timeout(mut self, secs: u64) -> Self { method default (line 287) | fn default() -> Self { FILE: libs/client-api/src/http.rs constant X_COMPRESSION_TYPE (line 52) | pub const X_COMPRESSION_TYPE: &str = "X-Compression-Type"; constant X_COMPRESSION_BUFFER_SIZE (line 53) | pub const X_COMPRESSION_BUFFER_SIZE: &str = "X-Compression-Buffer-Size"; constant X_COMPRESSION_TYPE_BROTLI (line 54) | pub const X_COMPRESSION_TYPE_BROTLI: &str = "brotli"; type ClientConfiguration (line 57) | pub struct ClientConfiguration { method with_compression_buffer_size (line 68) | pub fn with_compression_buffer_size(mut self, compression_buffer_size:... method with_compression_quality (line 73) | pub fn with_compression_quality(mut self, compression_quality: u32) ->... method default (line 85) | fn default() -> Self { type Client (line 106) | pub struct Client { method new (line 132) | pub fn new( method base_url (line 198) | pub fn base_url(&self) -> &str { method ws_addr (line 202) | pub fn ws_addr(&self) -> &str { method gotrue_url (line 206) | pub fn gotrue_url(&self) -> &str { method set_ai_model (line 210) | pub fn set_ai_model(&self, model: String) { method restore_token (line 216) | pub fn restore_token(&self, token: &str) -> Result<(), AppResponseErro... method get_token_str (line 236) | pub fn get_token_str(&self) -> Result { method get_token (line 246) | pub fn get_token(&self) -> Result Result { method subscribe_token_state (line 263) | pub fn subscribe_token_state(&self) -> TokenStateReceiver { method sign_in_password (line 268) | pub async fn sign_in_password( method sign_in_with_magic_link (line 296) | pub async fn sign_in_with_magic_link( method sign_in_with_recovery_code (line 318) | pub async fn sign_in_with_recovery_code( method sign_in_with_passcode (line 342) | pub async fn sign_in_with_passcode( method sign_in_with_url (line 365) | pub async fn sign_in_with_url(&self, url: &str) -> Result Result Result<(User, bool... method verify_token_cloud (line 539) | async fn verify_token_cloud(&self, access_token: &str) -> Result Result<(), AppResponseError> { method create_user (line 564) | pub async fn create_user(&self, email: &str, password: &str) -> Result... method create_email_verified_user (line 582) | pub async fn create_email_verified_user( method admin_list_users (line 605) | pub async fn admin_list_users( method token (line 617) | pub fn token(&self) -> Arc> { method token_expires_at (line 630) | pub fn token_expires_at(&self) -> Result { method access_token (line 652) | pub fn access_token(&self) -> Result { method get_profile (line 673) | pub async fn get_profile(&self) -> Result Result Result<()... method create_workspace (line 706) | pub async fn create_workspace( method patch_workspace (line 721) | pub async fn patch_workspace(&self, params: PatchWorkspaceParam) -> Re... method get_workspaces (line 732) | pub async fn get_workspaces(&self) -> Result, AppResp... method get_workspaces_opt (line 739) | pub async fn get_workspaces_opt( method get_workspace_folder (line 766) | pub async fn get_workspace_folder( method open_workspace (line 786) | pub async fn open_workspace(&self, workspace_id: &Uuid) -> Result Result<(),... method sign_out (line 935) | pub async fn sign_out(&self) -> Result<(), AppResponseError> { method update_user (line 942) | pub async fn update_user(&self, params: UpdateUserParams) -> Result<()... method delete_user (line 967) | pub async fn delete_user(&self) -> Result<(), AppResponseError> { method ws_connect_info (line 996) | pub async fn ws_connect_info(&self, auto_refresh: bool) -> Result Result Result<(), AppRespo... method inner_refresh_token (line 1089) | async fn inner_refresh_token(&self) -> Result<(), AppResponseError> { method refresh_if_expired (line 1110) | pub async fn refresh_if_expired(&self, ts: i64, reason: &str) -> Resul... method http_client_without_auth (line 1122) | pub async fn http_client_without_auth( method http_client_with_auth (line 1132) | pub async fn http_client_with_auth( method http_client_with_model (line 1167) | pub async fn http_client_with_model( method http_client_with_auth_compress (line 1184) | pub(crate) async fn http_client_with_auth_compress( method batch_create_collab_url (line 1212) | pub(crate) fn batch_create_collab_url(&self, workspace_id: &Uuid) -> S... type RefreshTokenSender (line 120) | pub(crate) type RefreshTokenSender = tokio::sync::oneshot::Sender) -> std::fmt::Result { function url_missing_param (line 1229) | fn url_missing_param(param: &str) -> AppResponseError { function brotli_compress (line 1234) | pub fn brotli_compress( function blocking_brotli_compress (line 1248) | pub async fn blocking_brotli_compress( function blocking_brotli_compress (line 1259) | pub async fn blocking_brotli_compress( function brotli_compress (line 1268) | pub fn brotli_compress( function attach_request_id (line 1275) | fn attach_request_id( function process_response_data (line 1283) | pub async fn process_response_data(resp: reqwest::Response) -> Result... function process_response_error (line 1305) | pub async fn process_response_error(resp: reqwest::Response) -> Result<(... function extract_request_id (line 1313) | fn extract_request_id(resp: &reqwest::Response) -> Option { FILE: libs/client-api/src/http_access_request.rs method get_access_request (line 12) | pub async fn get_access_request( method create_access_request (line 25) | pub async fn create_access_request( method approve_access_request (line 39) | pub async fn approve_access_request( method reject_access_request (line 56) | pub async fn reject_access_request( FILE: libs/client-api/src/http_ai.rs method stream_completion_text (line 16) | pub async fn stream_completion_text( method stream_completion_v2 (line 31) | pub async fn stream_completion_v2( method summarize_row (line 52) | pub async fn summarize_row( method translate_row (line 72) | pub async fn translate_row( method get_local_ai_config (line 93) | pub async fn get_local_ai_config( method get_model_list (line 112) | pub async fn get_model_list(&self, workspace_id: &Uuid) -> Result &str { method customer_id (line 27) | pub async fn customer_id(&self) -> Result { method create_subscription (line 37) | pub async fn create_subscription( method create_subscription_v2 (line 55) | pub async fn create_subscription_v2( method cancel_subscription (line 73) | pub async fn cancel_subscription( method list_subscription (line 90) | pub async fn list_subscription( method get_portal_session_link (line 106) | pub async fn get_portal_session_link(&self) -> Result String { method put_blob (line 26) | pub async fn put_blob>( method put_blob_v1 (line 49) | pub async fn put_blob_v1>( method put_blob_with_content_length (line 80) | pub async fn put_blob_with_content_length>( method get_blob_url_v1 (line 97) | pub fn get_blob_url_v1(&self, workspace_id: &Uuid, parent_dir: &str, fil... method parse_blob_url_v1 (line 106) | pub fn parse_blob_url_v1(&self, url: &str) -> Option<(Uuid, String, Stri... method get_blob_v1 (line 129) | pub async fn get_blob_v1( method delete_blob_v1 (line 141) | pub async fn delete_blob_v1( method get_blob_v1_metadata (line 161) | pub async fn get_blob_v1_metadata( method get_blob (line 184) | pub async fn get_blob(&self, url: &str) -> Result<(Mime, Vec), AppRe... method get_blob_metadata (line 227) | pub async fn get_blob_metadata(&self, url: &str) -> Result Result<(), AppResponseErro... method get_workspace_all_blob_metadata (line 247) | pub async fn get_workspace_all_blob_metadata( FILE: libs/client-api/src/http_chat.rs method create_chat (line 27) | pub async fn create_chat( method update_chat_settings (line 42) | pub async fn update_chat_settings( method get_chat_settings (line 60) | pub async fn get_chat_settings( method delete_chat (line 78) | pub async fn delete_chat( method create_question (line 93) | pub async fn create_question( method save_answer (line 113) | pub async fn save_answer( method stream_answer_v2 (line 132) | pub async fn stream_answer_v2( method stream_answer_v3 (line 162) | pub async fn stream_answer_v3( method get_answer (line 183) | pub async fn get_answer( method update_chat_message (line 203) | pub async fn update_chat_message( method get_chat_related_question (line 223) | pub async fn get_chat_related_question( method get_chat_messages (line 242) | pub async fn get_chat_messages( method get_chat_messages_with_author_uuid (line 278) | pub async fn get_chat_messages_with_author_uuid( method get_question_message_from_answer_id (line 312) | pub async fn get_question_message_from_answer_id( method calculate_similarity (line 332) | pub async fn calculate_similarity( type QuestionStream (line 351) | pub struct QuestionStream { method new (line 357) | pub fn new(stream: S) -> Self type QuestionStreamValue (line 369) | pub enum QuestionStreamValue { type ContextSuggestedQuestion (line 390) | pub struct ContextSuggestedQuestion { type Item (line 396) | type Item = Result; method poll_next (line 398) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll(stream: S) -> Self type CompletionStreamValue (line 458) | pub enum CompletionStreamValue { type Item (line 463) | type Item = Result; method poll_next (line 465) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll Result<... method update_collab (line 74) | pub async fn update_collab(&self, params: CreateCollabParams) -> Result<... method update_web_collab (line 88) | pub async fn update_web_collab( method batch_post_collab (line 109) | pub async fn batch_post_collab( method batch_get_collab (line 120) | pub async fn batch_get_collab( method send_batch_collab_request (line 130) | async fn send_batch_collab_request( method delete_collab (line 151) | pub async fn delete_collab(&self, params: DeleteCollabParams) -> Result<... method list_databases (line 166) | pub async fn list_databases( method list_database_row_ids (line 179) | pub async fn list_database_row_ids( method get_database_fields (line 196) | pub async fn get_database_fields( method add_database_field (line 215) | pub async fn add_database_field( method list_database_row_ids_updated (line 234) | pub async fn list_database_row_ids_updated( method list_database_row_details (line 253) | pub async fn list_database_row_details( method add_database_item (line 279) | pub async fn add_database_item( method upsert_database_item (line 305) | pub async fn upsert_database_item( method post_realtime_msg (line 331) | pub async fn post_realtime_msg( method create_collab_list (line 353) | pub async fn create_collab_list( method get_collab (line 404) | pub async fn get_collab( method publish_collabs (line 414) | pub async fn publish_collabs( method check_if_row_document_collab_exists (line 434) | pub async fn check_if_row_document_collab_exists( method get_collab_embed_info (line 452) | pub async fn get_collab_embed_info( method batch_get_collab_embed_info (line 470) | pub async fn batch_get_collab_embed_info( method force_generate_collab_embeddings (line 490) | pub async fn force_generate_collab_embeddings( method collab_full_sync (line 507) | pub async fn collab_full_sync( type RetryGetCollabCondition (line 556) | struct RetryGetCollabCondition; method should_retry (line 558) | fn should_retry(&mut self, error: &AppResponseError) -> bool { type PublishCollabItemStream (line 563) | pub struct PublishCollabItemStream { function new (line 570) | pub fn new(publish_collab_items: Vec>)... type Item (line 584) | type Item = Result; method poll_next (line 586) | fn poll_next(mut self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll(m: Metadata, d: &[u8]) -> Result Self { type Future (line 635) | type Future = Pin Self::Future { FILE: libs/client-api/src/http_file.rs method create_upload (line 28) | pub async fn create_upload( method upload_part (line 51) | pub async fn upload_part( method complete_upload (line 81) | pub async fn complete_upload( method import_file (line 126) | pub async fn import_file(&self, file_path: &Path) -> Result<(), AppRespo... method create_import (line 170) | pub async fn create_import( method upload_import_file (line 203) | pub async fn upload_import_file( method get_import_list (line 233) | pub async fn get_import_list(&self) -> Result String { method connect_info (line 265) | async fn connect_info(&self) -> Result { function calculate_md5 (line 289) | pub async fn calculate_md5(file_path: &Path) -> Result Result<(), A... method get_workspace_members (line 27) | pub async fn get_workspace_members( method invite_workspace_members (line 41) | pub async fn invite_workspace_members( method list_workspace_invitations (line 56) | pub async fn list_workspace_invitations( method get_workspace_invitation (line 69) | pub async fn get_workspace_invitation( method accept_workspace_invitation (line 82) | pub async fn accept_workspace_invitation( method add_workspace_members (line 101) | pub async fn add_workspace_members, W: A... method update_workspace_member (line 122) | pub async fn update_workspace_member( method remove_workspace_members (line 138) | pub async fn remove_workspace_members( method get_workspace_member (line 155) | pub async fn get_workspace_member( FILE: libs/client-api/src/http_person.rs method list_workspace_mentionable_persons (line 15) | pub async fn list_workspace_mentionable_persons( method get_workspace_mentionable_person (line 32) | pub async fn get_workspace_mentionable_person( method update_workspace_member_profile (line 49) | pub async fn update_workspace_member_profile( method list_page_mentionable_persons (line 67) | pub async fn list_page_mentionable_persons( method update_page_mention (line 84) | pub async fn update_page_mention( method upload_user_image_asset (line 103) | pub async fn upload_user_image_asset( method get_user_image_asset (line 120) | pub async fn get_user_image_asset( FILE: libs/client-api/src/http_publish.rs method list_published_views (line 19) | pub async fn list_published_views( method set_workspace_publish_namespace (line 38) | pub async fn set_workspace_publish_namespace( method get_workspace_publish_namespace (line 62) | pub async fn get_workspace_publish_namespace( method patch_published_collabs (line 78) | pub async fn patch_published_collabs( method unpublish_collabs (line 93) | pub async fn unpublish_collabs( method create_comment_on_published_view (line 108) | pub async fn create_comment_on_published_view( method delete_comment_on_published_view (line 130) | pub async fn delete_comment_on_published_view( method create_reaction_on_comment (line 150) | pub async fn create_reaction_on_comment( method delete_reaction_on_comment (line 172) | pub async fn delete_reaction_on_comment( method set_default_publish_view (line 194) | pub async fn set_default_publish_view( method delete_default_publish_view (line 212) | pub async fn delete_default_publish_view( method get_default_publish_view_info (line 228) | pub async fn get_default_publish_view_info( method get_published_view_comments (line 247) | pub async fn get_published_view_comments( method get_published_collab_info (line 269) | pub async fn get_published_collab_info( method get_published_outline (line 283) | pub async fn get_published_outline( method get_default_published_collab (line 303) | pub async fn get_default_published_collab( method get_published_collab (line 326) | pub async fn get_published_collab( method get_published_collab_blob (line 355) | pub async fn get_published_collab_blob( method duplicate_published_to_workspace (line 379) | pub async fn duplicate_published_to_workspace( method get_published_view_reactions (line 397) | pub async fn get_published_view_reactions( FILE: libs/client-api/src/http_quick_note.rs function quick_note_resources_url (line 10) | fn quick_note_resources_url(base_url: &str, workspace_id: Uuid) -> String { function quick_note_resource_url (line 14) | fn quick_note_resource_url(base_url: &str, workspace_id: Uuid, quick_not... method create_quick_note (line 21) | pub async fn create_quick_note( method list_quick_notes (line 36) | pub async fn list_quick_notes( method update_quick_note (line 57) | pub async fn update_quick_note( method delete_quick_note (line 73) | pub async fn delete_quick_note( FILE: libs/client-api/src/http_search.rs method search_documents (line 14) | pub async fn search_documents>>( method generate_search_summary (line 44) | pub async fn generate_search_summary( FILE: libs/client-api/src/http_settings.rs method get_workspace_settings (line 12) | pub async fn get_workspace_settings>( method update_workspace_settings (line 30) | pub async fn update_workspace_settings>( FILE: libs/client-api/src/http_template.rs function template_api_prefix (line 14) | fn template_api_prefix(base_url: &str) -> String { function category_resources_url (line 18) | fn category_resources_url(base_url: &str) -> String { function category_resource_url (line 22) | fn category_resource_url(base_url: &str, category_id: Uuid) -> String { function template_creator_resources_url (line 26) | fn template_creator_resources_url(base_url: &str) -> String { function template_creator_resource_url (line 30) | fn template_creator_resource_url(base_url: &str, creator_id: Uuid) -> St... function template_resources_url (line 38) | fn template_resources_url(base_url: &str) -> String { function template_resource_url (line 42) | fn template_resource_url(base_url: &str, view_id: Uuid) -> String { method create_template_category (line 47) | pub async fn create_template_category( method get_template_categories (line 62) | pub async fn get_template_categories( method get_template_category (line 80) | pub async fn get_template_category( method delete_template_category (line 93) | pub async fn delete_template_category(&self, category_id: Uuid) -> Resul... method update_template_category (line 103) | pub async fn update_template_category( method create_template_creator (line 119) | pub async fn create_template_creator( method get_template_creators (line 140) | pub async fn get_template_creators( method get_template_creator (line 156) | pub async fn get_template_creator( method delete_template_creator (line 169) | pub async fn delete_template_creator(&self, creator_id: Uuid) -> Result<... method update_template_creator (line 179) | pub async fn update_template_creator( method create_template (line 201) | pub async fn create_template( method get_template (line 216) | pub async fn get_template( method get_templates (line 230) | pub async fn get_templates( method update_template (line 253) | pub async fn update_template( method delete_template (line 269) | pub async fn delete_template(&self, view_id: Uuid) -> Result<(), AppResp... FILE: libs/client-api/src/http_view.rs method create_folder_view (line 16) | pub async fn create_folder_view( method create_workspace_page_view (line 34) | pub async fn create_workspace_page_view( method favorite_page_view (line 49) | pub async fn favorite_page_view( method move_workspace_page_view (line 68) | pub async fn move_workspace_page_view( method move_workspace_page_view_to_trash (line 87) | pub async fn move_workspace_page_view_to_trash( method restore_workspace_page_view_from_trash (line 105) | pub async fn restore_workspace_page_view_from_trash( method restore_all_workspace_page_views_from_trash (line 123) | pub async fn restore_all_workspace_page_views_from_trash( method add_recent_pages (line 140) | pub async fn add_recent_pages( method delete_workspace_page_view_from_trash (line 158) | pub async fn delete_workspace_page_view_from_trash( method delete_all_workspace_page_views_from_trash (line 175) | pub async fn delete_all_workspace_page_views_from_trash( method update_workspace_page_view (line 192) | pub async fn update_workspace_page_view( method get_workspace_page_view (line 211) | pub async fn get_workspace_page_view( method publish_page (line 228) | pub async fn publish_page( method unpublish_page (line 247) | pub async fn unpublish_page( method create_space (line 265) | pub async fn create_space( method update_space (line 280) | pub async fn update_space( method update_page_name (line 299) | pub async fn update_page_name( method update_page_icon (line 318) | pub async fn update_page_icon( method update_page_extra (line 337) | pub async fn update_page_extra( method remove_page_icon (line 356) | pub async fn remove_page_icon( method append_block_to_page (line 374) | pub async fn append_block_to_page( method create_database_view (line 393) | pub async fn create_database_view( method duplicate_view_and_children (line 412) | pub async fn duplicate_view_and_children( FILE: libs/client-api/src/notify.rs type TokenStateReceiver (line 7) | pub type TokenStateReceiver = Receiver; type TokenState (line 10) | pub enum TokenState { type ClientToken (line 15) | pub struct ClientToken { method new (line 21) | pub(crate) fn new() -> Self { method is_empty (line 29) | pub fn is_empty(&self) -> bool { method try_get (line 33) | pub fn try_get(&self) -> Result { method set (line 48) | pub(crate) fn set(&mut self, new_token: GotrueTokenResponse) { method unset (line 82) | pub(crate) fn unset(&mut self) { method subscribe (line 93) | pub(crate) fn subscribe(&self) -> Receiver { type Target (line 99) | type Target = Option; method deref (line 101) | fn deref(&self) -> &Self::Target { method deref_mut (line 107) | fn deref_mut(&mut self) -> &mut Self::Target { FILE: libs/client-api/src/ping.rs type ServerFixIntervalPing (line 9) | pub(crate) struct ServerFixIntervalPing { method new (line 22) | pub(crate) fn new( method stop (line 42) | pub(crate) async fn stop(&self) { method run (line 46) | pub(crate) fn run(&mut self) { FILE: libs/client-api/src/retry.rs type RefreshTokenAction (line 19) | pub(crate) struct RefreshTokenAction { method new (line 25) | pub fn new(token: Arc>, gotrue_client: gotrue::api... type Future (line 34) | type Future = Pin Self::Future { type RefreshTokenRetryCondition (line 72) | pub(crate) struct RefreshTokenRetryCondition; method should_retry (line 74) | fn should_retry(&mut self, error: &GoTrueError) -> bool { function retry_connect (line 79) | pub async fn retry_connect( type ConnectAction (line 92) | struct ConnectAction { method new (line 97) | fn new(connect_provider: Arc) -> Self { type Future (line 103) | type Future = Pin Self::Future { type RetryCondition (line 125) | struct RetryCondition { method should_retry (line 129) | fn should_retry(&mut self, error: &WSError) -> bool { FILE: libs/client-api/src/v2/actor.rs type WorkspaceControllerActor (line 43) | pub(super) struct WorkspaceControllerActor { constant PING_INTERVAL (line 61) | const PING_INTERVAL: Duration = Duration::from_secs(4); constant PING_TIMEOUT (line 62) | const PING_TIMEOUT: Duration = Duration::from_secs(20); constant REMOTE_ORIGIN (line 63) | const REMOTE_ORIGIN: &'static str = "af"; method new (line 65) | pub fn new(db: Db, options: Options, last_message_id: Rid) -> Arc { method subscribe_changed_collab (line 90) | pub fn subscribe_changed_collab(&self) -> tokio::sync::broadcast::Rece... method subscribe_notification (line 94) | pub fn subscribe_notification(&self) -> tokio::sync::broadcast::Receiv... method client_id (line 98) | pub fn client_id(&self) -> ClientID { method workspace_id (line 102) | pub fn workspace_id(&self) -> &Uuid { method trigger (line 106) | pub fn trigger(&self, action: WorkspaceAction) { method status_channel (line 112) | pub fn status_channel(&self) -> &tokio::sync::watch::Receiver Option { method remove_collab (line 121) | pub fn remove_collab(&self, object_id: &ObjectId) { method delete_collab (line 126) | pub fn delete_collab(&self, object_id: &ObjectId) -> anyhow::Result<()> { method last_message_id (line 132) | pub fn last_message_id(&self) -> Rid { method bind_and_cache_collab_ref (line 147) | pub async fn bind_and_cache_collab_ref( method cache_collab_ref (line 162) | pub fn cache_collab_ref( method unbind (line 174) | pub async fn unbind(&self, object_id: &ObjectId) { method bind (line 199) | pub fn bind( method set_connection_status (line 252) | pub(crate) fn set_connection_status(&self, status: ConnectionStatus) { method ping (line 257) | async fn ping(&self) -> anyhow::Result<()> { method actor_loop (line 266) | async fn actor_loop( method handle_action (line 313) | async fn handle_action(actor: &Arc, action: WorkspaceAction) { method handle_send (line 367) | async fn handle_send(&self, msg: ClientMessage, source: ActionSource) ... method send_message (line 397) | async fn send_message(&self, msg: ClientMessage) -> anyhow::Result<()> { method set_collab_sync_state (line 448) | async fn set_collab_sync_state(&self, object_id: &ObjectId, sync_state... method handle_connect (line 457) | pub(crate) async fn handle_connect( method remote_receiver_task (line 527) | async fn remote_receiver_task( method remote_receiver_loop (line 547) | async fn remote_receiver_loop( method handle_receive (line 623) | async fn handle_receive(&self, msg: ServerMessage) -> anyhow::Result<(... method send_notification (line 717) | async fn send_notification(&self, notification: WorkspaceNotification) { method publish_pending_collabs (line 733) | async fn publish_pending_collabs(&self) -> anyhow::Result<()> { method spawn_publish_inactive_collabs (line 809) | pub fn spawn_publish_inactive_collabs( method check_missing_updates (line 869) | fn check_missing_updates( method save_remote_update (line 904) | async fn save_remote_update( method persist_update (line 977) | async fn persist_update( method save_awareness_update (line 1008) | async fn save_awareness_update( method handle_disconnect (line 1029) | async fn handle_disconnect(&self) -> anyhow::Result<()> { method publish_manifest (line 1053) | fn publish_manifest(&self, object_id: ObjectId, collab: &Collab, colla... method publish_update (line 1074) | fn publish_update( method publish_awareness (line 1091) | fn publish_awareness( method ws_sink (line 1112) | fn ws_sink(&self) -> Option>>> { method establish_connection (line 1119) | async fn establish_connection( type WorkspaceAction (line 1164) | pub(super) enum WorkspaceAction { type ActionSource (line 1174) | pub(super) enum ActionSource { method from (line 1198) | fn from(value: Option) -> Self { method fmt (line 1180) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function from (line 1189) | fn from(value: ActionSource) -> Self { type WsConn (line 1206) | pub(super) type WsConn = tokio_tungstenite::WebSocketStream Self { method upgrade (line 1225) | fn upgrade(&self) -> Option { type ChangedCollab (line 1231) | pub struct ChangedCollab { method borrow (line 1249) | fn borrow(&self) -> &ObjectId { method eq (line 1237) | fn eq(&self, other: &Self) -> bool { method hash (line 1244) | fn hash(&self, state: &mut H) { constant OBSERVER_KEY (line 1254) | const OBSERVER_KEY: &str = "af"; function unobserve_awareness (line 1256) | fn unobserve_awareness(awareness: &Awareness) { function observe_awareness (line 1261) | fn observe_awareness( function unobserve_update (line 1284) | fn unobserve_update(object_id: &ObjectId, awareness: &Awareness) -> anyh... function observe_update (line 1291) | fn observe_update( function publish_inactive_collab (line 1332) | fn publish_inactive_collab( function num_of_unsynced_collab (line 1358) | fn num_of_unsynced_collab(cache: Arc>) -... FILE: libs/client-api/src/v2/compactor.rs type ChannelReceiverCompactor (line 11) | pub(super) struct ChannelReceiverCompactor { method new (line 17) | pub(super) fn new(receiver: UnboundedReceiver) -> Self { method recv (line 24) | pub async fn recv(&mut self) -> Option { method try_prefetch (line 52) | fn try_prefetch( function update_compaction (line 172) | async fn update_compaction() { function no_compaction_for_different_object_ids (line 225) | async fn no_compaction_for_different_object_ids() { function mixed_message_types_break_compaction (line 291) | async fn mixed_message_types_break_compaction() { function single_update_no_compaction (line 360) | async fn single_update_no_compaction() { function remote_updates_not_compacted (line 401) | async fn remote_updates_not_compacted() { function size_threshold_limits_compaction (line 441) | async fn size_threshold_limits_compaction() { function mixed_update_flags_compaction (line 477) | async fn mixed_update_flags_compaction() { function peeked_message_handling (line 525) | async fn peeked_message_handling() { function different_collab_types_not_compacted (line 599) | async fn different_collab_types_not_compacted() { function same_collab_type_and_object_compacted (line 676) | async fn same_collab_type_and_object_compacted() { FILE: libs/client-api/src/v2/conn_retry.rs type ReconnectTarget (line 13) | pub trait ReconnectTarget: Send + Sync { method status_channel (line 14) | fn status_channel(&self) -> &tokio::sync::watch::Receiver, token: String) -> Result<(),... method set_disconnected (line 18) | fn set_disconnected(&self, reason: DisconnectedReason); method status_channel (line 215) | fn status_channel(&self) -> &watch::Receiver { method attempt_connect (line 219) | async fn attempt_connect(self: Arc, _token: String) -> Result<()... method set_disconnected (line 230) | fn set_disconnected(&self, reason: DisconnectedReason) { type RetryConfig (line 22) | pub struct RetryConfig { method default (line 32) | fn default() -> Self { type ReconnectionManager (line 42) | pub(crate) struct ReconnectionManager { method with_config_for_target (line 51) | pub fn with_config_for_target( method new_for_target (line 64) | pub fn new_for_target(target: Arc) ... method new (line 69) | pub fn new(actor: Arc) -> Self { method set_access_token (line 75) | pub fn set_access_token(&self, token: String) { method trigger_reconnect (line 79) | pub fn trigger_reconnect(&self, reason: &str) { method retry_with_exponential_backoff (line 107) | async fn retry_with_exponential_backoff( type FakeTarget (line 177) | struct FakeTarget { method new (line 186) | fn new( method get_last_disconnect_reason (line 204) | async fn get_last_disconnect_reason(&self) -> Option anyhow::Resul... method new_with_rocksdb (line 39) | pub fn new_with_rocksdb>(options: Options, db: T) ->... method new_with_db (line 44) | fn new_with_db(options: Options, db: Db) -> anyhow::Result { method subscribe_changed_collab (line 58) | pub fn subscribe_changed_collab(&self) -> tokio::sync::broadcast::Rece... method is_connected (line 62) | pub fn is_connected(&self) -> bool { method is_disconnected (line 69) | pub fn is_disconnected(&self) -> bool { method connect_state (line 76) | pub fn connect_state(&self) -> ConnectState { method subscribe_connect_state (line 80) | pub fn subscribe_connect_state(&self) -> impl Stream tokio::sync::broadcast::Receiv... method connect (line 89) | pub async fn connect(&self, access_token: String) -> anyhow::Result<()> { method disconnect (line 107) | pub async fn disconnect(&self) -> anyhow::Result<()> { method close (line 114) | pub async fn close(&mut self) -> anyhow::Result<()> { method client_id (line 118) | pub fn client_id(&self) -> ClientID { method workspace_id (line 122) | pub fn workspace_id(&self) -> WorkspaceId { method last_message_id (line 126) | pub fn last_message_id(&self) -> Rid { method bind_and_cache_collab_ref (line 139) | pub async fn bind_and_cache_collab_ref( method bind (line 147) | pub fn bind(&self, collab: &mut Collab, collab_type: CollabType) -> an... method cache_collab_ref (line 151) | pub async fn cache_collab_ref( method enable_receive_message (line 166) | pub fn enable_receive_message(&self) { method disable_receive_message (line 173) | pub fn disable_receive_message(&self) { type DisconnectedReason (line 182) | pub enum DisconnectedReason { method from (line 218) | fn from(value: appflowy_proto::Error) -> Self { method from (line 224) | fn from(value: Error) -> Self { method from (line 239) | fn from(value: AppResponseError) -> Self { method retriable (line 248) | pub fn retriable(&self) -> bool { method retriable_when_editing (line 255) | pub fn retriable_when_editing(&self) -> bool { method fmt (line 197) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type ConnectionStatus (line 267) | pub enum ConnectionStatus { method disconnected_reason (line 282) | pub fn disconnected_reason(&self) -> &Option { method default (line 291) | fn default() -> Self { method fmt (line 297) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type ConnectState (line 311) | pub enum ConnectState { method from (line 318) | fn from(value: &ConnectionStatus) -> Self { method is_connected (line 331) | pub fn is_connected(&self) -> bool { type Options (line 337) | pub struct Options { method status_channel (line 354) | fn status_channel(&self) -> &tokio::sync::watch::Receiver, token: String) -> Result<(), A... method set_disconnected (line 363) | fn set_disconnected(&self, reason: DisconnectedReason) { function spawn_reconnection (line 370) | pub fn spawn_reconnection( function check_and_reconnect (line 408) | fn check_and_reconnect( FILE: libs/client-api/src/v2/db.rs type Db (line 24) | pub(crate) struct Db { method open (line 32) | pub fn open(workspace_id: Uuid, uid: i64, path: &str) -> Result>( method client_id (line 58) | pub fn client_id(&self) -> ClientID { method last_message_id (line 62) | pub fn last_message_id(&self) -> Result { method init_collab (line 71) | pub fn init_collab( method get_state_vector (line 113) | pub fn get_state_vector(&self, object_id: &ObjectId) -> Result Result<(), Per... method remove_doc (line 228) | pub fn remove_doc(&self, object_id: &Uuid) -> Result<(), PersistenceEr... method save_update (line 241) | pub fn save_update( type CollabKVActionExt (line 292) | pub trait CollabKVActionExt<'a>: CollabKVAction<'a> method client_id (line 296) | fn client_id(&self, workspace_id: &Uuid) -> Result Result SmallVec<[u8; 19]> { function make_last_message_id_key (line 402) | pub fn make_last_message_id_key(workspace_id: &Uuid) -> SmallVec<[u8; 19... type DbHolder (line 417) | pub enum DbHolder { method get (line 430) | pub fn get(&self) -> anyhow::Result> { method from (line 439) | fn from(value: KVTransactionDBRocksdbImpl) -> Self { method from (line 445) | fn from(value: Weak) -> Self { FILE: libs/client-api/src/v2/mod.rs type WorkspaceController (line 6) | pub type WorkspaceController = controller::WorkspaceController; type WorkspaceControllerOptions (line 7) | pub type WorkspaceControllerOptions = controller::Options; type WorkspaceId (line 14) | pub type WorkspaceId = uuid::Uuid; type ObjectId (line 15) | pub type ObjectId = uuid::Uuid; FILE: libs/client-api/src/ws/client.rs type WSClientConfig (line 29) | pub struct WSClientConfig { method default (line 40) | fn default() -> Self { type WSClientHttpSender (line 50) | pub trait WSClientHttpSender: Send + Sync { method send_ws_msg (line 51) | async fn send_ws_msg(&self, device_id: &str, message: Message) -> Resu... type WSClientConnectURLProvider (line 55) | pub trait WSClientConnectURLProvider: Send + Sync { method connect_ws_url (line 56) | fn connect_ws_url(&self) -> String; method connect_info (line 57) | async fn connect_info(&self) -> Result; type WeakChannel (line 60) | type WeakChannel = Weak>; type ChannelByObjectId (line 61) | type ChannelByObjectId = HashMap>; type WSConnectStateReceiver (line 62) | pub type WSConnectStateReceiver = Receiver; type StateNotify (line 64) | pub(crate) type StateNotify = parking_lot::Mutex; constant MAXIMUM_MESSAGE_SIZE (line 68) | const MAXIMUM_MESSAGE_SIZE: usize = 40960; constant MAXIMUM_BATCH_MESSAGE_SIZE (line 69) | const MAXIMUM_BATCH_MESSAGE_SIZE: usize = 20480; type WSClient (line 71) | pub struct WSClient { method new (line 89) | pub fn new(config: WSClientConfig, http_sender: H, connect_provi... method connect (line 121) | pub async fn connect(&self) -> Result<(), WSError> { method spawn_aggregate_message (line 182) | fn spawn_aggregate_message(&self) { method start_ping (line 194) | async fn start_ping(&self) -> tokio::sync::mpsc::Sender<()> { method spawn_send_client_message (line 210) | fn spawn_send_client_message( method spawn_recv_server_message (line 259) | fn spawn_recv_server_message( method subscribe_collab (line 346) | pub fn subscribe_collab( method subscribe_user_changed (line 369) | pub fn subscribe_user_changed(&self) -> Receiver { method subscribe_connect_state (line 373) | pub fn subscribe_connect_state(&self) -> WSConnectStateReceiver { method is_connected (line 377) | pub fn is_connected(&self) -> bool { method disconnect (line 381) | pub async fn disconnect(&self) { method clean (line 392) | async fn clean(&self) { method send (line 404) | pub fn send>(&self, msg: M) -> Result<(), WSError> { method get_state (line 409) | pub fn get_state(&self) -> ConnectState { method set_state (line 413) | async fn set_state(&self, state: ConnectState) { method disable_receive_message (line 444) | pub fn disable_receive_message(&self) { method enable_receive_message (line 450) | pub fn enable_receive_message(&self) { function handle_collab_message (line 419) | fn handle_collab_message( function send_message (line 457) | async fn send_message( type ConnectInfo (line 482) | pub struct ConnectInfo { method fmt (line 489) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { method from (line 498) | fn from(info: ConnectInfo) -> HeaderMap { FILE: libs/client-api/src/ws/error.rs type WSError (line 5) | pub enum WSError { method should_stop (line 26) | pub fn should_stop(&self) -> bool { method from (line 32) | fn from(value: Error) -> Self { FILE: libs/client-api/src/ws/handler.rs type WebSocketChannel (line 12) | pub struct WebSocketChannel { method drop (line 20) | fn drop(&mut self) { function new (line 30) | pub fn new(object_id: &str, rt_msg_sender: Sender BroadcastSink> { function stream (line 64) | pub fn stream(&self) -> UnboundedReceiverStream> { type BroadcastSink (line 83) | pub struct BroadcastSink(pub UnboundedSender); function new (line 86) | pub fn new(tx: UnboundedSender) -> Self { type Error (line 95) | type Error = anyhow::Error; function poll_ready (line 97) | fn poll_ready(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll, item: T) -> Result<(), Self::Error> { function poll_flush (line 106) | fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll, _cx: &mut Context<'_>) -> Poll; type AggregateMessagesReceiver (line 15) | pub type AggregateMessagesReceiver = mpsc::Receiver; type AggregateMessageQueue (line 17) | pub struct AggregateMessageQueue { method new (line 25) | pub fn new(maximum_payload_size: usize) -> Self { method push (line 34) | pub async fn push(&self, msg: Vec) { method clear (line 44) | pub async fn clear(&self) { method set_sender (line 49) | pub async fn set_sender(&self, sender: AggregateMessagesSender) { function handle_tick (line 83) | async fn handle_tick( function send_batch_message (line 114) | async fn send_batch_message( function next_batch_message (line 139) | async fn next_batch_message( function log_message_map (line 174) | fn log_message_map(messages_map: &HashMap Self { function calculate_next_tick_duration (line 222) | fn calculate_next_tick_duration( FILE: libs/client-api/src/ws/state.rs type ConnectStateNotify (line 4) | pub struct ConnectStateNotify { method new (line 10) | pub(crate) fn new() -> Self { method set_state (line 18) | pub(crate) fn set_state(&mut self, state: ConnectState) { method subscribe (line 26) | pub(crate) fn subscribe(&self) -> Receiver { type ConnectState (line 32) | pub enum ConnectState { method is_connecting (line 42) | pub fn is_connecting(&self) -> bool { method is_connected (line 46) | pub fn is_connected(&self) -> bool { method is_timeout (line 51) | pub fn is_timeout(&self) -> bool { method is_lost (line 56) | pub fn is_lost(&self) -> bool { FILE: libs/client-websocket/src/error.rs type Result (line 7) | pub type Result = result::Result; type Error (line 11) | pub enum Error { method from (line 73) | fn from(_: str::Utf8Error) -> Self { method from (line 79) | fn from(_: string::FromUtf8Error) -> Self { method from (line 85) | fn from(err: http::header::InvalidHeaderValue) -> Self { method from (line 91) | fn from(err: http::header::InvalidHeaderName) -> Self { method from (line 97) | fn from(_: http::header::ToStrError) -> Self { method from (line 103) | fn from(err: http::uri::InvalidUri) -> Self { method from (line 109) | fn from(err: http::status::InvalidStatusCode) -> Self { method from (line 115) | fn from(err: httparse::Error) -> Self { type CapacityError (line 125) | pub enum CapacityError { type ProtocolError (line 142) | pub enum ProtocolError { type UrlError (line 226) | pub enum UrlError { type Data (line 249) | pub enum Data { method fmt (line 261) | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { FILE: libs/client-websocket/src/lib.rs function connect_async (line 19) | pub async fn connect_async>(url: S, headers: HeaderMap) ->... FILE: libs/client-websocket/src/message.rs type Message (line 3) | pub enum Message { method text (line 16) | pub fn text(string: S) -> Message method binary (line 24) | pub fn binary(bin: B) -> Message method is_text (line 32) | pub fn is_text(&self) -> bool { method is_binary (line 37) | pub fn is_binary(&self) -> bool { method is_ping (line 42) | pub fn is_ping(&self) -> bool { method is_pong (line 47) | pub fn is_pong(&self) -> bool { method is_close (line 52) | pub fn is_close(&self) -> bool { method len (line 57) | pub fn len(&self) -> usize { method is_empty (line 69) | pub fn is_empty(&self) -> bool { method into_data (line 74) | pub fn into_data(self) -> Vec { method into_text (line 86) | pub fn into_text(self) -> Result { method to_text (line 99) | pub fn to_text(&self) -> Result<&str, crate::Error> { method from (line 112) | fn from(string: String) -> Self { method from (line 118) | fn from(string: &'s str) -> Self { method from (line 124) | fn from(data: &'b [u8]) -> Self { method from (line 130) | fn from(data: Vec) -> Self { method fmt (line 150) | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::result::Result<(), ... function from (line 136) | fn from(message: Message) -> Self { type Error (line 142) | type Error = crate::Error; method try_from (line 144) | fn try_from(value: Message) -> std::result::Result { type CloseFrame (line 161) | pub struct CloseFrame<'t> { function into_owned (line 170) | pub fn into_owned(self) -> CloseFrame<'static> { function fmt (line 179) | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { type CloseCode (line 189) | pub enum CloseCode { method is_allowed (line 262) | pub fn is_allowed(self) -> bool { method fmt (line 268) | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { method from (line 306) | fn from(code: u16) -> CloseCode { function from (line 275) | fn from(code: CloseCode) -> u16 { function from (line 300) | fn from(code: &'t CloseCode) -> u16 { FILE: libs/client-websocket/src/native.rs function connect_async (line 15) | pub async fn connect_async(url: &str, header_map: HeaderMap) -> crate::R... type TokioTungsteniteStream (line 24) | type TokioTungsteniteStream = type FutMessage (line 26) | type FutMessage = futures_util::future::Ready; method poll_next (line 38) | fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll (usize, Option) { function to_fut_message (line 81) | fn to_fut_message(msg: Result) -> FutMessage { function from (line 100) | fn from(close_frame: CloseFrame<'a>) -> Self { function from (line 109) | fn from(close_frame: crate::message::CloseFrame<'a>) -> Self { function from (line 118) | fn from(msg: Message) -> Self { method from (line 131) | fn from(msg: crate::Message) -> Self { function from (line 143) | fn from(err: Error) -> Self { function from (line 162) | fn from(err: CapacityError) -> Self { function from (line 173) | fn from(err: UrlError) -> Self { function from (line 186) | fn from(err: ProtocolError) -> Self { function from (line 243) | fn from(data: Data) -> Self { FILE: libs/client-websocket/src/web.rs function connect_async (line 7) | pub async fn connect_async(url: &str, header_map: HeaderMap) -> crate::R... type WebSocketStream (line 11) | pub struct WebSocketStream { method new (line 21) | async fn new(url: &str, headers: HeaderMap) -> crate::Result { method drop (line 118) | fn drop(&mut self) { type ReadyState (line 126) | enum ReadyState { type Error (line 134) | type Error = (); method try_from (line 136) | fn try_from(value: u16) -> Result { type Item (line 153) | type Item = crate::Result; function poll_next (line 155) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll, _cx: &mut Context<'_>) -> Poll, item: crate::Message) -> Result<(), ... function poll_flush (line 216) | fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll, _cx: &mut Context<'_>) -> Poll Result { function header_map_to_query_string (line 253) | fn header_map_to_query_string(headers: &HeaderMap) -> String { FILE: libs/collab-rt-entity/build.rs function main (line 3) | fn main() -> Result<(), Box> { FILE: libs/collab-rt-entity/src/client_message.rs type SinkMessage (line 17) | pub trait SinkMessage: Clone + Send + Sync + 'static + Ord + Display { method payload_size (line 18) | fn payload_size(&self) -> usize; method mergeable (line 19) | fn mergeable(&self) -> bool; method merge (line 20) | fn merge(&mut self, other: &Self, maximum_payload_size: &usize) -> Res... method is_client_init_sync (line 21) | fn is_client_init_sync(&self) -> bool; method is_server_init_sync (line 22) | fn is_server_init_sync(&self) -> bool; method is_update_sync (line 23) | fn is_update_sync(&self) -> bool; method is_awareness_sync (line 24) | fn is_awareness_sync(&self) -> bool; method is_ping_sync (line 25) | fn is_ping_sync(&self) -> bool; method payload_size (line 159) | fn payload_size(&self) -> usize { method mergeable (line 163) | fn mergeable(&self) -> bool { method merge (line 167) | fn merge(&mut self, other: &Self, maximum_payload_size: &usize) -> Res... method is_client_init_sync (line 183) | fn is_client_init_sync(&self) -> bool { method is_server_init_sync (line 187) | fn is_server_init_sync(&self) -> bool { method is_update_sync (line 191) | fn is_update_sync(&self) -> bool { method is_awareness_sync (line 195) | fn is_awareness_sync(&self) -> bool { method is_ping_sync (line 199) | fn is_ping_sync(&self) -> bool { type ClientCollabMessage (line 29) | pub enum ClientCollabMessage { method new_init_sync (line 38) | pub fn new_init_sync(data: InitSync) -> Self { method new_update_sync (line 42) | pub fn new_update_sync(data: UpdateSync) -> Self { method new_server_init_sync (line 46) | pub fn new_server_init_sync(data: ServerInit) -> Self { method new_awareness_sync (line 50) | pub fn new_awareness_sync(data: UpdateSync) -> Self { method size (line 54) | pub fn size(&self) -> usize { method object_id (line 63) | pub fn object_id(&self) -> &str { method origin (line 73) | pub fn origin(&self) -> &CollabOrigin { method payload (line 82) | pub fn payload(&self) -> &Bytes { method device_id (line 92) | pub fn device_id(&self) -> Option { method msg_id (line 99) | pub fn msg_id(&self) -> MsgId { method is_init_sync (line 109) | pub fn is_init_sync(&self) -> bool { type Error (line 133) | type Error = Error; method try_from (line 135) | fn try_from(value: CollabMessage) -> Result { method fmt (line 115) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { method from (line 151) | fn from(msg: ClientCollabMessage) -> Self { method hash (line 205) | fn hash(&self, state: &mut H) { method eq (line 215) | fn eq(&self, other: &Self) -> bool { method partial_cmp (line 223) | fn partial_cmp(&self, other: &Self) -> Option { method cmp (line 229) | fn cmp(&self, other: &Self) -> Ordering { type InitSync (line 255) | pub struct InitSync { method new (line 265) | pub fn new( method fmt (line 286) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type UpdateSync (line 305) | pub struct UpdateSync { method new (line 325) | pub fn new(origin: CollabOrigin, object_id: String, payload: Vec, ... method merge_payload (line 334) | pub fn merge_payload(&mut self, other: &Self) -> Result { method as_update (line 352) | fn as_update(&self) -> Option { method fmt (line 360) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type CollabStateCheck (line 372) | pub struct CollabStateCheck { method fmt (line 379) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { FILE: libs/collab-rt-entity/src/collab_proto.rs type CollabDocStateParams (line 4) | pub struct CollabDocStateParams { type PayloadCompressionType (line 18) | pub enum PayloadCompressionType { method as_str_name (line 27) | pub fn as_str_name(&self) -> &'static str { method from_str_name (line 34) | pub fn from_str_name(value: &str) -> ::core::option::Option { FILE: libs/collab-rt-entity/src/message.rs constant MAXIMUM_REALTIME_MESSAGE_SIZE (line 15) | pub const MAXIMUM_REALTIME_MESSAGE_SIZE: usize = 10 * 1024 * 1024; function max_sync_message_size (line 21) | pub fn max_sync_message_size() -> usize { type MessageByObjectId (line 29) | pub struct MessageByObjectId(pub HashMap HashMap> { type Target (line 42) | type Target = HashMap>; method deref (line 44) | fn deref(&self) -> &Self::Target { method deref_mut (line 50) | fn deref_mut(&mut self) -> &mut Self::Target { type RealtimeMessage (line 61) | pub enum RealtimeMessage { method split_messages_by_object_id (line 75) | pub fn split_messages_by_object_id(self) -> Result Option { method encode (line 109) | pub fn encode(&self) -> Result, Error> { method decode (line 125) | pub fn decode(data: &[u8]) -> Result { method from (line 282) | fn from(msg: CollabMessage) -> Self { method fmt (line 136) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type SystemMessage (line 149) | pub enum SystemMessage { type MsgId (line 155) | pub type MsgId = u64; type CollabMessage (line 157) | pub enum CollabMessage { method msg_id (line 167) | pub fn msg_id(&self) -> Option { method len (line 178) | pub fn len(&self) -> usize { method payload (line 181) | pub fn payload(&self) -> &Bytes { method is_empty (line 191) | pub fn is_empty(&self) -> bool { method origin (line 194) | pub fn origin(&self) -> &CollabOrigin { method uid (line 205) | pub fn uid(&self) -> Option { method object_id (line 209) | pub fn object_id(&self) -> &str { method from (line 235) | fn from(value: CollabAck) -> Self { method from (line 241) | fn from(value: BroadcastSync) -> Self { method from (line 247) | fn from(value: InitSync) -> Self { method from (line 253) | fn from(value: UpdateSync) -> Self { method from (line 259) | fn from(value: AwarenessSync) -> Self { method from (line 265) | fn from(value: ServerInit) -> Self { type Error (line 271) | type Error = anyhow::Error; method try_from (line 273) | fn try_from(value: RealtimeMessage) -> Result { method fmt (line 222) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { FILE: libs/collab-rt-entity/src/realtime_proto.rs type HttpRealtimeMessage (line 4) | pub struct HttpRealtimeMessage { FILE: libs/collab-rt-entity/src/server_message.rs type ServerCollabMessage (line 11) | pub enum ServerCollabMessage { method object_id (line 19) | pub fn object_id(&self) -> &str { method msg_id (line 28) | pub fn msg_id(&self) -> Option { method payload (line 37) | pub fn payload(&self) -> &Bytes { method size (line 46) | pub fn size(&self) -> usize { method origin (line 55) | pub fn origin(&self) -> &CollabOrigin { type Error (line 77) | type Error = Error; method try_from (line 79) | fn try_from(value: CollabMessage) -> Result { method from (line 97) | fn from(value: ServerInit) -> Self { method fmt (line 66) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { method from (line 91) | fn from(msg: ServerCollabMessage) -> Self { type ServerInit (line 110) | pub struct ServerInit { method new (line 127) | pub fn new(origin: CollabOrigin, object_id: String, payload: Vec, ... method fmt (line 138) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type CollabAck (line 157) | pub struct CollabAck { method new (line 170) | pub fn new(origin: CollabOrigin, object_id: String, msg_id: MsgId, seq... method with_payload (line 182) | pub fn with_payload>(mut self, payload: T) -> Self { method with_code (line 187) | pub fn with_code(mut self, code: AckCode) -> Self { method get_code (line 192) | pub fn get_code(&self) -> AckCode { method get_seq_num (line 196) | pub fn get_seq_num(&self) -> Option { type AckCode (line 207) | pub enum AckCode { method from (line 217) | fn from(value: u8) -> Self { type AckMeta (line 231) | pub struct AckMeta { method new (line 237) | fn new(msg_id: &MsgId) -> Self { method fmt (line 246) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type BroadcastSync (line 267) | pub struct BroadcastSync { method new (line 277) | pub fn new(origin: CollabOrigin, object_id: String, payload: Vec, ... method fmt (line 288) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type AwarenessSync (line 306) | pub struct AwarenessSync { method new (line 313) | pub fn new(object_id: String, payload: Vec, origin: CollabOrigin) ... method fmt (line 323) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { FILE: libs/collab-rt-entity/src/user.rs type UserMessage (line 7) | pub enum UserMessage { type AFUserChange (line 13) | pub struct AFUserChange { type AFWorkspaceMemberChange (line 21) | pub struct AFWorkspaceMemberChange { type UserDevice (line 28) | pub struct UserDevice { method new (line 34) | pub fn new(device_id: &str, uid: i64) -> Self { method from (line 43) | fn from(user: &RealtimeUser) -> Self { type RealtimeUser (line 57) | pub struct RealtimeUser { method new (line 74) | pub fn new( method user_device (line 90) | pub fn user_device(&self) -> String { method fmt (line 96) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { FILE: libs/collab-rt-entity/tests/serde_test.rs type AckMetaV1 (line 12) | pub struct AckMetaV1 { type RealtimeMessageV1 (line 24) | pub enum RealtimeMessageV1 { function decode_0149_realtime_message_test (line 31) | fn decode_0149_realtime_message_test() { function decode_0147_realtime_message_test (line 56) | fn decode_0147_realtime_message_test() { function decode_version_2_collab_message_with_version_1_test_1 (line 81) | fn decode_version_2_collab_message_with_version_1_test_1() { function write_message_to_file (line 105) | fn write_message_to_file( function read_message_from_file (line 116) | fn read_message_from_file(file_path: &str) -> Result... function validate_encode_collab (line 28) | pub async fn validate_encode_collab( FILE: libs/collab-rt-protocol/src/message.rs constant MSG_SYNC (line 10) | pub const MSG_SYNC: u8 = 0; constant MSG_AWARENESS (line 12) | pub const MSG_AWARENESS: u8 = 1; constant MSG_AUTH (line 14) | pub const MSG_AUTH: u8 = 2; constant MSG_CUSTOM (line 15) | pub const MSG_CUSTOM: u8 = 3; constant PERMISSION_DENIED (line 17) | pub const PERMISSION_DENIED: u8 = 0; constant PERMISSION_GRANTED (line 18) | pub const PERMISSION_GRANTED: u8 = 1; type Message (line 21) | pub enum Message { method encode (line 29) | fn encode(&self, encoder: &mut E) { method decode (line 57) | fn decode(decoder: &mut D) -> Result) -> std::fmt::Result { constant MSG_CUSTOM_START_SYNC (line 97) | pub const MSG_CUSTOM_START_SYNC: u8 = 0; type CustomMessage (line 100) | pub enum CustomMessage { method fmt (line 105) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { method encode (line 112) | fn encode(&self, encoder: &mut E) { method decode (line 123) | fn decode(decoder: &mut D) -> Result Vec { method from_vec (line 146) | pub fn from_vec(data: &[u8]) -> Result) -> std::fmt::Result { method encode (line 187) | fn encode(&self, encoder: &mut E) { method decode (line 206) | fn decode(decoder: &mut D) -> Result Self { type MessageReader (line 281) | pub struct MessageReader<'a, D: Decoder>(&'a mut D); function new (line 284) | pub fn new(decoder: &'a mut D) -> Self { type Item (line 290) | type Item = Result; method next (line 292) | fn next(&mut self) -> Option { FILE: libs/collab-rt-protocol/src/protocol.rs type ClientSyncProtocol (line 19) | pub struct ClientSyncProtocol; type CollabRef (line 74) | pub type CollabRef = Arc + Send + Sync + 's... type WeakCollabRef (line 76) | pub type WeakCollabRef = Weak + Send + Sync... type CollabSyncProtocol (line 79) | pub trait CollabSyncProtocol { method check (line 23) | fn check(&self, encoder: &mut E, last_sync_at: i64) -> Res... method handle_sync_step2 (line 31) | async fn handle_sync_step2( method handle_message (line 81) | async fn handle_message( method check (line 107) | fn check(&self, _encoder: &mut E, _last_sync_at: i64) -> R... method start (line 111) | fn start( method handle_sync_step1 (line 145) | async fn handle_sync_step1( method handle_sync_step2 (line 166) | async fn handle_sync_step2( method handle_update (line 175) | async fn handle_update( method handle_auth (line 184) | async fn handle_auth( method handle_awareness_update (line 198) | async fn handle_awareness_update( method handle_custom_message (line 210) | async fn handle_custom_message( constant LARGE_UPDATE_THRESHOLD (line 219) | pub const LARGE_UPDATE_THRESHOLD: usize = 1024 * 1024; function decode_update (line 222) | pub async fn decode_update(update: Vec) -> Result>; type ScopedAwarenessSender (line 15) | type ScopedAwarenessSender = UnboundedSender<(Uuid, Arc Result { method dispatch_collab_awareness_update (line 61) | fn dispatch_collab_awareness_update( method send (line 91) | pub async fn send( method sink (line 104) | pub async fn sink( method collab_awareness_stream (line 113) | pub fn collab_awareness_stream( method workspace_awareness_stream (line 122) | pub fn workspace_awareness_stream( method parse_update (line 131) | fn parse_update(msg: redis::Msg) -> Result<(Uuid, Uuid, AwarenessStrea... method parse_channel_name (line 142) | fn parse_channel_name(channel_name: &str) -> Option<(Uuid, Uuid)> { type AwarenessUpdateSink (line 158) | pub struct AwarenessUpdateSink { method new (line 164) | pub fn new(conn: MultiplexedConnection, workspace_id: &Uuid, object_id... method send (line 172) | pub async fn send(&self, msg: &AwarenessStreamUpdate) -> Result<(), St... method notify_awareness_change (line 179) | async fn notify_awareness_change( function subscribe_awareness_change_for_many_collabs (line 200) | async fn subscribe_awareness_change_for_many_collabs() { FILE: libs/collab-stream/src/client.rs type CollabRedisStream (line 20) | pub struct CollabRedisStream { constant LEASE_TTL (line 27) | pub const LEASE_TTL: Duration = Duration::from_secs(60); method new (line 29) | pub async fn new( method new_with_connection_manager (line 53) | pub fn new_with_connection_manager( method lease (line 65) | pub async fn lease( method collab_update_sink (line 77) | pub fn collab_update_sink( method awareness_update_sink (line 92) | pub async fn awareness_update_sink( method current_collab_updates (line 102) | pub async fn current_collab_updates( method live_collab_updates (line 143) | pub fn live_collab_updates( method awareness_updates (line 167) | pub fn awareness_updates( method delete_stream_messages (line 174) | pub async fn delete_stream_messages( method prune_update_stream (line 193) | pub async fn prune_update_stream( method prune_awareness_stream (line 220) | pub async fn prune_awareness_stream(&self, stream_key: &str) -> Result... FILE: libs/collab-stream/src/collab_update_sink.rs type CollabUpdateSink (line 8) | pub struct CollabUpdateSink { method new (line 16) | pub fn new( method send (line 30) | pub async fn send(&self, msg: &CollabStreamUpdate) -> Result bool { function internal (line 54) | pub fn internal(msg: T) -> RedisError { FILE: libs/collab-stream/src/lease.rs constant RELEASE_SCRIPT (line 7) | const RELEASE_SCRIPT: &str = r#" type LeaseAcquisition (line 15) | pub struct LeaseAcquisition { method release (line 22) | pub async fn release(&mut self) -> Result { method release_internal (line 30) | async fn release_internal>( method drop (line 46) | fn drop(&mut self) { type Lease (line 62) | pub trait Lease { method lease (line 65) | async fn lease( method lease (line 74) | async fn lease( function lease_acquisition (line 115) | async fn lease_acquisition() { FILE: libs/collab-stream/src/metrics.rs type CollabStreamMetrics (line 5) | pub struct CollabStreamMetrics { method register (line 13) | pub fn register(registry: &mut Registry) -> Self { FILE: libs/collab-stream/src/model.rs type MessageId (line 29) | pub struct MessageId { method new (line 35) | pub fn new(timestamp_ms: u64, sequence_number: u16) -> Self { method from (line 50) | fn from(rid: Rid) -> Self { type Error (line 68) | type Error = StreamError; method try_from (line 70) | fn try_from(s: &[u8]) -> Result { type Error (line 77) | type Error = StreamError; method try_from (line 79) | fn try_from(s: &str) -> Result { type Error (line 98) | type Error = StreamError; method try_from (line 100) | fn try_from(s: String) -> Result { method fmt (line 44) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { method from (line 59) | fn from(val: MessageId) -> Self { method from_redis_value (line 106) | fn from_redis_value(v: &Value) -> RedisResult { method write_redis_args (line 121) | fn write_redis_args(&self, out: &mut W) type StreamMessage (line 131) | pub struct StreamMessage { type Error (line 176) | type Error = StreamError; method try_from (line 178) | fn try_from(value: StreamId) -> Result { method from_redis_value (line 139) | fn from_redis_value(v: &Value) -> RedisResult { type StreamBinary (line 188) | pub struct StreamBinary(pub Vec); method from (line 191) | fn from(m: StreamMessage) -> Self { method into_tuple_array (line 205) | pub fn into_tuple_array(self) -> [(&'static str, Vec); 1] { type Error (line 212) | type Error = StreamError; method try_from (line 214) | fn try_from(value: Vec) -> Result { type Error (line 220) | type Error = StreamError; method try_from (line 222) | fn try_from(value: &[u8]) -> Result { type Error (line 307) | type Error = StreamError; method try_from (line 309) | fn try_from(value: CollabControlEvent) -> Result { type Target (line 197) | type Target = Vec; method deref (line 199) | fn deref(&self) -> &Self::Target { function verify_field (line 227) | fn verify_field(field: &Value, expected: &str) -> RedisResult<()> { type RedisString (line 239) | pub struct RedisString(String); method from_redis_value (line 241) | fn from_redis_value(v: &Value) -> RedisResult { method fmt (line 251) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function bulk_from_redis_value (line 256) | fn bulk_from_redis_value(v: &Value) -> Result<&Vec, RedisError> { type CollabControlEvent (line 265) | pub enum CollabControlEvent { method encode (line 297) | pub fn encode(&self) -> Result, serde_json::Error> { method decode (line 301) | pub fn decode(data: &[u8]) -> Result { method fmt (line 278) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type CollabStreamUpdate (line 315) | pub struct CollabStreamUpdate { method new (line 322) | pub fn new(data: B, sender: CollabOrigin, flags: F) -> Self method into_update (line 334) | pub fn into_update(self) -> Result Self { type Error (line 360) | type Error = StreamError; method try_from (line 362) | fn try_from(fields: &'a HashMap) -> Result Result Self { constant IS_V2_ENCODED (line 421) | pub const IS_V2_ENCODED: u8 = 0b0000_0001; constant IS_COMPRESSED (line 423) | pub const IS_COMPRESSED: u8 = 0b0000_0010; method is_v2_encoded (line 426) | pub fn is_v2_encoded(&self) -> bool { method is_v1_encoded (line 431) | pub fn is_v1_encoded(&self) -> bool { method is_compressed (line 436) | pub fn is_compressed(&self) -> bool { method from (line 453) | fn from(value: u8) -> Self { method write_redis_args (line 443) | fn write_redis_args(&self, out: &mut W) method fmt (line 459) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type UpdateStreamMessage (line 475) | pub struct UpdateStreamMessage { method stream_key (line 485) | pub fn stream_key(workspace_id: &Uuid) -> String { method prepare_command (line 489) | pub fn prepare_command( type Error (line 516) | type Error = anyhow::Error; method from_redis_stream (line 517) | fn from_redis_stream(msg_id: &str, fields: &RedisMap) -> Result Result Result { function new (line 42) | pub fn new(receiver: StreamReceiver) -> Self { type Item (line 54) | type Item = Result; method poll_next (line 56) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll) -> Resu... method with_options (line 90) | pub fn with_options( method observe (line 124) | pub fn observe( method drop (line 162) | fn drop(&mut self) { type StreamRouterOptions (line 169) | pub struct StreamRouterOptions { method default (line 190) | fn default() -> Self { type Worker (line 200) | struct Worker { method new (line 206) | fn new( method process_streams (line 235) | fn process_streams( method schedule_back (line 306) | fn schedule_back( method read_buf (line 337) | fn read_buf( type RedisMap (line 377) | pub type RedisMap = HashMap; type WeakStreamSender (line 378) | type WeakStreamSender = tokio::sync::broadcast::WeakSender Self { type TestMessage (line 410) | struct TestMessage { function multi_worker_preexisting_messages (line 435) | async fn multi_worker_preexisting_messages() { function multi_worker_live_messages (line 468) | async fn multi_worker_live_messages() { function stream_reader_continue_from (line 502) | async fn stream_reader_continue_from() { function drop_subscription (line 519) | async fn drop_subscription() { function observe_unobserve_observe_again (line 565) | async fn observe_unobserve_observe_again() { function init_streams (line 608) | fn init_streams(client: &mut Client, stream_count: usize, msgs_per_strea... FILE: libs/database-entity/src/dto.rs function serialize (line 26) | pub fn serialize(uuid: &Uuid, serializer: S) -> Result function deserialize (line 33) | pub fn deserialize<'de, D>(deserializer: D) -> Result constant ZSTD_COMPRESSION_LEVEL (line 43) | pub const ZSTD_COMPRESSION_LEVEL: i32 = 3; type CreateCollabParams (line 46) | pub struct CreateCollabParams { method from (line 60) | fn from((workspace_id, collab_params): (Uuid, CollabParams)) -> Self { method split (line 71) | pub fn split(self) -> (CollabParams, Uuid) { method to_bytes (line 83) | pub fn to_bytes(&self) -> Result, bincode::Error> { method from_bytes (line 86) | pub fn from_bytes(bytes: &[u8]) -> Result { type CollabIndexParams (line 91) | pub struct CollabIndexParams {} type PendingCollabWrite (line 93) | pub struct PendingCollabWrite { method new (line 100) | pub fn new(workspace_id: Uuid, uid: i64, params: CollabParams) -> Self { type CollabUpdateData (line 110) | pub struct CollabUpdateData { type CollabParams (line 118) | pub struct CollabParams { method from (line 201) | fn from(value: CreateCollabData) -> Self { method fmt (line 131) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type CreateCollabData (line 143) | pub struct CreateCollabData { method to_bytes (line 150) | pub fn to_bytes(&self) -> Result, bincode::Error> { method from_bytes (line 154) | pub fn from_bytes(bytes: &[u8]) -> Result { method to_proto (line 169) | pub fn to_proto(&self) -> proto::CollabParams { method to_protobuf_bytes (line 178) | pub fn to_protobuf_bytes(&self) -> Vec { method from_protobuf_bytes (line 182) | pub fn from_protobuf_bytes(bytes: &[u8]) -> Result { method from (line 191) | fn from(value: CollabParams) -> Self { type Error (line 212) | type Error = EntityError; method try_from (line 214) | fn try_from(proto: proto::CollabParams) -> Result { type CreateCollabDataV0 (line 227) | struct CreateCollabDataV0 { type BatchCreateCollabParams (line 235) | pub struct BatchCreateCollabParams { method to_bytes (line 242) | pub fn to_bytes(&self) -> Result, bincode::Error> { method from_bytes (line 246) | pub fn from_bytes(bytes: &[u8]) -> Result { type UpdateCollabWebParams (line 252) | pub struct UpdateCollabWebParams { type DeleteCollabParams (line 258) | pub struct DeleteCollabParams { type InsertSnapshotParams (line 266) | pub struct InsertSnapshotParams { type SnapshotData (line 277) | pub struct SnapshotData { type QuerySnapshotParams (line 286) | pub struct QuerySnapshotParams { type QueryCollabParams (line 291) | pub struct QueryCollabParams { method new (line 309) | pub fn new(object_id: Uuid, collab_type: CollabType, workspace_id: Uui... method fmt (line 299) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Target (line 322) | type Target = QueryCollab; method deref (line 324) | fn deref(&self) -> &Self::Target { type QueryCollab (line 330) | pub struct QueryCollab { method new (line 335) | pub fn new(object_id: Uuid, collab_type: CollabType) -> Self { type BatchQueryCollabParams (line 344) | pub struct BatchQueryCollabParams(pub Vec); type Target (line 347) | type Target = Vec; method deref (line 349) | fn deref(&self) -> &Self::Target { method deref_mut (line 355) | fn deref_mut(&mut self) -> &mut Self::Target { type AFSnapshotMeta (line 361) | pub struct AFSnapshotMeta { type AFSnapshotMetas (line 368) | pub struct AFSnapshotMetas(pub Vec); type QueryObjectSnapshotParams (line 371) | pub struct QueryObjectSnapshotParams { type AFBlobRecord (line 377) | pub struct AFBlobRecord { method new (line 382) | pub fn new(file_id: String) -> Self { type QueryCollabResult (line 388) | pub enum QueryCollabResult { type BatchQueryCollabResult (line 394) | pub struct BatchQueryCollabResult(pub HashMap); type WorkspaceUsage (line 397) | pub struct WorkspaceUsage { type InsertCollabMemberParams (line 402) | pub struct InsertCollabMemberParams { type UpdateCollabMemberParams (line 411) | pub type UpdateCollabMemberParams = InsertCollabMemberParams; type WorkspaceCollabIdentify (line 414) | pub struct WorkspaceCollabIdentify { type UpdatePublishNamespace (line 423) | pub struct UpdatePublishNamespace { type UpdateDefaultPublishView (line 429) | pub struct UpdateDefaultPublishView { type DefaultPublishViewInfoMeta (line 434) | pub struct DefaultPublishViewInfoMeta { type QueryCollabMembers (line 440) | pub struct QueryCollabMembers { type QueryWorkspaceMember (line 448) | pub struct QueryWorkspaceMember { type AFDatabaseRowDocumentCollabExistenceInfo (line 456) | pub struct AFDatabaseRowDocumentCollabExistenceInfo { type AFCollabEmbedInfo (line 461) | pub struct AFCollabEmbedInfo { type RepeatedAFCollabEmbedInfo (line 470) | pub struct RepeatedAFCollabEmbedInfo(pub Vec); type PublishInfo (line 473) | pub struct PublishInfo { function default_comments_enabled (line 489) | fn default_comments_enabled() -> bool { function default_duplicate_enabled (line 493) | fn default_duplicate_enabled() -> bool { type PublishInfoMeta (line 498) | pub struct PublishInfoMeta { type AFRole (line 505) | pub enum AFRole { method can_create_collab (line 513) | pub fn can_create_collab(&self) -> bool { method from (line 519) | fn from(value: i32) -> Self { method from (line 534) | fn from(value: &str) -> Self { function from (line 543) | fn from(role: AFRole) -> Self { function from (line 549) | fn from(role: &AFRole) -> Self { method partial_cmp (line 555) | fn partial_cmp(&self, other: &Self) -> Option { method cmp (line 561) | fn cmp(&self, other: &Self) -> Ordering { type AFPermission (line 570) | pub struct AFPermission { type AFAccessLevel (line 580) | pub enum AFAccessLevel { method can_write (line 589) | pub fn can_write(&self) -> bool { method can_delete (line 596) | pub fn can_delete(&self) -> bool { method from (line 607) | fn from(value: &AFRole) -> Self { method from (line 617) | fn from(value: i32) -> Self { method from (line 633) | fn from(value: &str) -> Self { function from (line 642) | fn from(level: AFAccessLevel) -> Self { function from (line 648) | fn from(level: &AFAccessLevel) -> Self { method partial_cmp (line 654) | fn partial_cmp(&self, other: &Self) -> Option { method cmp (line 660) | fn cmp(&self, other: &Self) -> Ordering { type RawData (line 667) | pub type RawData = Vec; type AFUserProfile (line 670) | pub struct AFUserProfile { type AFUserWithAvatar (line 683) | pub struct AFUserWithAvatar { type AFWorkspace (line 691) | pub struct AFWorkspace { type AFWorkspaceSettings (line 708) | pub struct AFWorkspaceSettings { method default (line 717) | fn default() -> Self { type AFWorkspaceSettingsChange (line 726) | pub struct AFWorkspaceSettingsChange { method new (line 734) | pub fn new() -> Self { method disable_search_indexing (line 740) | pub fn disable_search_indexing(mut self, disable_search_indexing: bool... method ai_model (line 744) | pub fn ai_model(mut self, ai_model: String) -> Self { type AFUserWorkspaceInfo (line 751) | pub struct AFUserWorkspaceInfo { type AFWorkspaceMember (line 758) | pub struct AFWorkspaceMember { type AFWorkspaceInvitation (line 767) | pub struct AFWorkspaceInvitation { type AFWorkspaceInvitationStatus (line 782) | pub enum AFWorkspaceInvitationStatus { method from (line 789) | fn from(value: i16) -> Self { type AFCollabEmbeddedChunk (line 803) | pub struct AFCollabEmbeddedChunk { method mark_as_duplicate (line 819) | pub fn mark_as_duplicate(&mut self) { type AFCollabEmbeddings (line 826) | pub struct AFCollabEmbeddings { type EmbeddingContentType (line 836) | pub enum EmbeddingContentType { method from_proto (line 842) | pub fn from_proto(proto: proto::EmbeddingContentType) -> Result proto::EmbeddingContentType { type PublishCollabMetadata (line 860) | pub struct PublishCollabMetadata { type PublishCollabKey (line 867) | pub struct PublishCollabKey { type PublishCollabItem (line 873) | pub struct PublishCollabItem { type PatchPublishedCollab (line 881) | pub struct PatchPublishedCollab { type GlobalComments (line 889) | pub struct GlobalComments { type AFWebUser (line 894) | pub struct AFWebUser { type AFWebUserWithObfuscatedName (line 901) | pub struct AFWebUserWithObfuscatedName { type GlobalComment (line 908) | pub struct GlobalComment { type CreateGlobalCommentParams (line 920) | pub struct CreateGlobalCommentParams { type DeleteGlobalCommentParams (line 926) | pub struct DeleteGlobalCommentParams { type Reactions (line 931) | pub struct Reactions { type Reaction (line 936) | pub struct Reaction { type GetReactionQueryParams (line 943) | pub struct GetReactionQueryParams { type CreateReactionParams (line 948) | pub struct CreateReactionParams { type DeleteReactionParams (line 954) | pub struct DeleteReactionParams { type IndexingStatus (line 961) | pub enum IndexingStatus { type TemplateCategories (line 971) | pub struct TemplateCategories { type TemplateCategoryType (line 977) | pub enum TemplateCategoryType { type TemplateCategory (line 983) | pub struct TemplateCategory { type TemplateCategoryMinimal (line 994) | pub struct TemplateCategoryMinimal { type CreateTemplateCategoryParams (line 1002) | pub struct CreateTemplateCategoryParams { type GetTemplateCategoriesQueryParams (line 1012) | pub struct GetTemplateCategoriesQueryParams { type UpdateTemplateCategoryParams (line 1018) | pub struct UpdateTemplateCategoryParams { type TemplateCreators (line 1028) | pub struct TemplateCreators { type AccountLink (line 1033) | pub struct AccountLink { type TemplateCreator (line 1039) | pub struct TemplateCreator { type TemplateCreatorMinimal (line 1048) | pub struct TemplateCreatorMinimal { type CreateTemplateCreatorParams (line 1055) | pub struct CreateTemplateCreatorParams { type UpdateTemplateCreatorParams (line 1062) | pub struct UpdateTemplateCreatorParams { type GetTemplateCreatorsQueryParams (line 1069) | pub struct GetTemplateCreatorsQueryParams { type Template (line 1074) | pub struct Template { type TemplateWithPublishInfo (line 1090) | pub struct TemplateWithPublishInfo { type TemplateMinimal (line 1097) | pub struct TemplateMinimal { type TemplateMinimalWithPublishInfo (line 1111) | pub struct TemplateMinimalWithPublishInfo { type Templates (line 1118) | pub struct Templates { type CreateTemplateParams (line 1123) | pub struct CreateTemplateParams { type UpdateTemplateParams (line 1137) | pub struct UpdateTemplateParams { type GetTemplatesQueryParams (line 1150) | pub struct GetTemplatesQueryParams { type TemplateGroup (line 1158) | pub struct TemplateGroup { type TemplateGroupWithPublishInfo (line 1164) | pub struct TemplateGroupWithPublishInfo { type TemplateHomePage (line 1170) | pub struct TemplateHomePage { type TemplateHomePageQueryParams (line 1177) | pub struct TemplateHomePageQueryParams { type AvatarImageSource (line 1182) | pub struct AvatarImageSource { type UserImageAssetSource (line 1187) | pub struct UserImageAssetSource { type UserImageAssetContent (line 1192) | pub struct UserImageAssetContent { type AvatarContent (line 1198) | pub struct AvatarContent { type AccessRequestStatus (line 1205) | pub enum AccessRequestStatus { type AccessRequestWithViewId (line 1212) | pub struct AccessRequestWithViewId { type AccessRequesterInfo (line 1222) | pub struct AccessRequesterInfo { type AccessRequestMinimal (line 1231) | pub struct AccessRequestMinimal { type CreateAccessRequestParams (line 1239) | pub struct CreateAccessRequestParams { type ApproveAccessRequestParams (line 1245) | pub struct ApproveAccessRequestParams { type CreateImportTask (line 1250) | pub struct CreateImportTask { type CreateImportTaskResponse (line 1259) | pub struct CreateImportTaskResponse { type WorkspaceNamespace (line 1265) | pub struct WorkspaceNamespace { type QuickNote (line 1272) | pub struct QuickNote { type QuickNotes (line 1280) | pub struct QuickNotes { type CreateQuickNoteParams (line 1286) | pub struct CreateQuickNoteParams { type UpdateQuickNoteParams (line 1291) | pub struct UpdateQuickNoteParams { type ListQuickNotesQueryParams (line 1296) | pub struct ListQuickNotesQueryParams { type WorkspaceInviteCodeParams (line 1303) | pub struct WorkspaceInviteCodeParams { type WorkspaceInviteToken (line 1308) | pub struct WorkspaceInviteToken { type InvitedWorkspace (line 1313) | pub struct InvitedWorkspace { type GetInvitationCodeInfoQuery (line 1318) | pub struct GetInvitationCodeInfoQuery { type InvitationCodeInfo (line 1323) | pub struct InvitationCodeInfo { type JoinWorkspaceByInviteCodeParams (line 1334) | pub struct JoinWorkspaceByInviteCodeParams { type MentionableWorkspaceMemberOrGuest (line 1338) | pub struct MentionableWorkspaceMemberOrGuest { type MentionableWorkspaceMemberOrGuestWithLastMentionedTime (line 1369) | pub struct MentionableWorkspaceMemberOrGuestWithLastMentionedTime { type WorkspaceMemberProfile (line 1405) | pub struct WorkspaceMemberProfile { type MentionablePerson (line 1414) | pub struct MentionablePerson { method from (line 1350) | fn from(val: MentionableWorkspaceMemberOrGuest) -> Self { type MentionablePersonWithLastMentionedTime (line 1427) | pub struct MentionablePersonWithLastMentionedTime { method from (line 1384) | fn from(val: MentionableWorkspaceMemberOrGuestWithLastMentionedTime) -... type MentionablePersonWithAccess (line 1441) | pub struct MentionablePersonWithAccess { type MentionablePersons (line 1448) | pub struct MentionablePersons { type MentionablePersonsWithAccess (line 1453) | pub struct MentionablePersonsWithAccess { type MentionablePersonType (line 1459) | pub enum MentionablePersonType { type PageMentionUpdate (line 1466) | pub struct PageMentionUpdate { type PageMentionNotification (line 1478) | pub struct PageMentionNotification { type ProcessedPageMentionNotification (line 1492) | pub struct ProcessedPageMentionNotification { function collab_params_serialization_from_old_format (line 1507) | fn collab_params_serialization_from_old_format() { function deserialization_using_protobuf (line 1575) | fn deserialization_using_protobuf() { function deserialize_collab_params_without_embeddings (line 1588) | fn deserialize_collab_params_without_embeddings() { FILE: libs/database-entity/src/error.rs type EntityError (line 2) | pub enum EntityError { FILE: libs/database-entity/src/file_dto.rs type CreateUploadRequest (line 5) | pub struct CreateUploadRequest { method fmt (line 14) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type CreateUploadResponse (line 24) | pub struct CreateUploadResponse { type UploadPartData (line 30) | pub struct UploadPartData { method fmt (line 38) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type UploadPartResponse (line 51) | pub struct UploadPartResponse { type CompleteUploadRequest (line 57) | pub struct CompleteUploadRequest { method fmt (line 65) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type CompletedPartRequest (line 77) | pub struct CompletedPartRequest { type CompleteUploadResponse (line 83) | pub struct CompleteUploadResponse { FILE: libs/database/src/access_request.rs function insert_new_access_request (line 10) | pub async fn insert_new_access_request<'a, E: Executor<'a, Database = Po... function select_access_request_by_request_id (line 50) | pub async fn select_access_request_by_request_id<'a, E: Executor<'a, Dat... function update_access_request_status (line 107) | pub async fn update_access_request_status<'a, E: Executor<'a, Database =... function delete_access_request (line 126) | pub async fn delete_access_request<'a, E: Executor<'a, Database = Postgr... FILE: libs/database/src/chat/chat_ops.rs function insert_chat (line 22) | pub async fn insert_chat<'a, E: Executor<'a, Database = Postgres>>( function select_chat_settings (line 46) | pub async fn select_chat_settings<'a, E: Executor<'a, Database = Postgre... function update_chat_settings (line 67) | pub async fn update_chat_settings<'a, E: Executor<'a, Database = Postgre... function delete_chat (line 134) | pub async fn delete_chat( function select_chat (line 152) | pub async fn select_chat<'a, E: Executor<'a, Database = Postgres>>( function select_chat_rag_ids (line 177) | pub async fn select_chat_rag_ids<'a, E: Executor<'a, Database = Postgres>>( function insert_answer_message_with_transaction (line 196) | pub async fn insert_answer_message_with_transaction( function insert_answer_message (line 303) | pub async fn insert_answer_message( function insert_question_message (line 330) | pub async fn insert_question_message<'a, E: Executor<'a, Database = Post... function select_chat_messages (line 363) | pub async fn select_chat_messages( function select_chat_messages_with_author_uuid (line 535) | pub async fn select_chat_messages_with_author_uuid( function get_all_chat_messages (line 721) | pub async fn get_all_chat_messages<'a, E: Executor<'a, Database = Postgr... function delete_answer_message_by_question_message_id (line 762) | pub async fn delete_answer_message_by_question_message_id( function update_chat_message_content (line 794) | pub async fn update_chat_message_content( function update_chat_message_meta (line 814) | pub async fn update_chat_message_meta( function select_chat_message_content (line 841) | pub async fn select_chat_message_content<'a, E: Executor<'a, Database = ... function select_chat_message_matching_reply_message_id (line 858) | pub async fn select_chat_message_matching_reply_message_id( FILE: libs/database/src/collab/collab_db_ops.rs function insert_into_af_collab (line 46) | pub async fn insert_into_af_collab( function insert_into_af_collab_bulk_for_user (line 141) | pub async fn insert_into_af_collab_bulk_for_user( function select_collabs_created_since (line 204) | pub async fn select_collabs_created_since<'a, E>( function select_collab_id_exists (line 233) | pub async fn select_collab_id_exists<'a, E>(conn: E, object_id: &Uuid) -... function select_blob_from_af_collab (line 252) | pub async fn select_blob_from_af_collab<'a, E>( function select_collab_meta_from_af_collab (line 276) | pub async fn select_collab_meta_from_af_collab<'a, E>( function batch_select_collab_blob (line 300) | pub async fn batch_select_collab_blob( type QueryCollabData (line 354) | struct QueryCollabData { function create_snapshot (line 359) | pub async fn create_snapshot( function latest_snapshot_time (line 390) | pub async fn latest_snapshot_time<'a, E: Executor<'a, Database = Postgre... function should_create_snapshot2 (line 404) | pub async fn should_create_snapshot2<'a, E: Executor<'a, Database = Post... function create_snapshot_and_maintain_limit (line 426) | pub async fn create_snapshot_and_maintain_limit( function select_snapshot (line 470) | pub async fn select_snapshot( function select_latest_snapshot (line 492) | pub async fn select_latest_snapshot( function get_all_collab_snapshot_meta (line 514) | pub async fn get_all_collab_snapshot_meta( function transform_record_not_found_error (line 534) | fn transform_record_not_found_error( function is_collab_exists (line 553) | pub async fn is_collab_exists<'a, E: Executor<'a, Database = Postgres>>( function select_workspace_database_oid (line 568) | pub async fn select_workspace_database_oid<'a, E: Executor<'a, Database ... function select_last_updated_database_row_ids (line 587) | pub async fn select_last_updated_database_row_ids( function select_collab_embed_info (line 613) | pub async fn select_collab_embed_info<'a, E>( function batch_select_collab_embed (line 646) | pub async fn batch_select_collab_embed<'a, E>( FILE: libs/database/src/collab/collab_storage.rs constant COLLAB_SNAPSHOT_LIMIT (line 13) | pub const COLLAB_SNAPSHOT_LIMIT: i64 = 30; constant SNAPSHOT_PER_HOUR (line 14) | pub const SNAPSHOT_PER_HOUR: i64 = 6; type AppResult (line 15) | pub type AppResult = core::result::Result; type GetCollabOrigin (line 18) | pub enum GetCollabOrigin { method from (line 24) | fn from(uid: i64) -> Self { type CollabStore (line 34) | pub trait CollabStore: Send + Sync + 'static { method upsert_collab (line 35) | async fn upsert_collab( method upsert_collab_background (line 42) | async fn upsert_collab_background( method upsert_new_collab_with_transaction (line 58) | async fn upsert_new_collab_with_transaction( method batch_insert_new_collab (line 67) | async fn batch_insert_new_collab( method get_full_encode_collab (line 83) | async fn get_full_encode_collab( method batch_get_collab (line 91) | async fn batch_get_collab( method delete_collab (line 107) | async fn delete_collab(&self, workspace_id: &Uuid, uid: &i64, object_i... method mark_as_editing (line 109) | fn mark_as_editing(&self, oid: Uuid); type CollabMetadata (line 113) | pub struct CollabMetadata { function serialize (line 124) | pub fn serialize(uuid: &Uuid, serializer: S) -> Result function deserialize (line 131) | pub fn deserialize<'de, D>(deserializer: D) -> Result FILE: libs/database/src/collab/mod.rs function partition_key_from_collab_type (line 8) | pub(crate) fn partition_key_from_collab_type(collab_type: &CollabType) -... FILE: libs/database/src/file/file_storage.rs type ResponseBlob (line 17) | pub trait ResponseBlob { method to_blob (line 18) | fn to_blob(self) -> Vec; method content_type (line 19) | fn content_type(&self) -> Option; type BucketClient (line 23) | pub trait BucketClient { method put_blob (line 26) | async fn put_blob( method put_blob_with_content_type (line 33) | async fn put_blob_with_content_type( method delete_blob (line 40) | async fn delete_blob(&self, object_key: &str) -> Result) -> Result<(), Ap... method get_blob (line 44) | async fn get_blob(&self, object_key: &str) -> Result Result<(), AppError>; method list_dir (line 64) | async fn list_dir(&self, dir: &str, limit: usize) -> Result &Uuid; method object_key (line 69) | fn object_key(&self) -> String; method blob_metadata_key (line 70) | fn blob_metadata_key(&self) -> String; method e_tag (line 71) | fn e_tag(&self) -> &str; type BucketStorage (line 74) | pub struct BucketStorage { function new (line 83) | pub fn new(client: C, pg_pool: PgPool) -> Self { function remove_dir (line 87) | pub async fn remove_dir(&self, dir: &str) -> Result<(), AppError> { function put_blob_with_content_type (line 95) | pub async fn put_blob_with_content_type( function delete_blob (line 126) | pub async fn delete_blob(&self, key: impl BlobKey) -> Result<(), AppErro... function get_blob_metadata (line 135) | pub async fn get_blob_metadata( function get_blob (line 144) | pub async fn get_blob(&self, key: &impl BlobKey) -> Result, AppE... function create_upload (line 149) | pub async fn create_upload( function upload_part (line 157) | pub async fn upload_part( function complete_upload (line 165) | pub async fn complete_upload( FILE: libs/database/src/file/s3_client_impl.rs type S3BucketStorage (line 25) | pub type S3BucketStorage = BucketStorage; method from_bucket_impl (line 28) | pub fn from_bucket_impl(client: AwsS3BucketClientImpl, pg_pool: sqlx::... type AwsS3BucketClientImpl (line 34) | pub struct AwsS3BucketClientImpl { method new (line 42) | pub fn new( method gen_presigned_url (line 57) | pub async fn gen_presigned_url( method complete_upload_and_get_metadata (line 103) | async fn complete_upload_and_get_metadata( type ResponseData (line 151) | type ResponseData = S3ResponseData; method put_blob (line 153) | async fn put_blob( method put_blob_with_content_type (line 180) | async fn put_blob_with_content_type( method delete_blob (line 207) | async fn delete_blob(&self, object_key: &str) -> Result) -> Result<(), App... method get_blob (line 265) | async fn get_blob(&self, object_key: &str) -> Result Result<(), AppError> { method list_dir (line 479) | async fn list_dir(&self, dir: &str, limit: usize) -> Result,... type S3ResponseData (line 502) | pub struct S3ResponseData { method from (line 526) | fn from(_: DeleteObjectOutput) -> Self { method from (line 535) | fn from(_: DeleteObjectsOutput) -> Self { method new_with_data (line 544) | pub fn new_with_data(data: Vec, content_type: Option) -> S... type Target (line 508) | type Target = Vec; method deref (line 510) | fn deref(&self) -> &Self::Target { method to_blob (line 516) | fn to_blob(self) -> Vec { method content_type (line 520) | fn content_type(&self) -> Option { FILE: libs/database/src/history/ops.rs function insert_history (line 12) | pub async fn insert_history( function insert_snapshot_meta (line 62) | async fn insert_snapshot_meta<'a, E: Executor<'a, Database = Postgres>>( function get_snapshot_meta_list (line 97) | pub async fn get_snapshot_meta_list( function insert_snapshot_state (line 133) | async fn insert_snapshot_state<'a, E: Executor<'a, Database = Postgres>>( function get_latest_snapshot_state (line 164) | pub async fn get_latest_snapshot_state<'a, E: Executor<'a, Database = Po... function get_latest_snapshot (line 190) | pub async fn get_latest_snapshot( type AFSnapshotMetaPbRow (line 253) | pub struct AFSnapshotMetaPbRow { type AFSnapshotStateRow (line 261) | pub struct AFSnapshotStateRow { FILE: libs/database/src/index/collab_embeddings_ops.rs function get_index_status (line 16) | pub async fn get_index_status<'a, E>( type Fragment (line 65) | pub struct Fragment { method from (line 76) | fn from(value: AFCollabEmbeddedChunk) -> Self { method array_type_info (line 90) | fn array_type_info() -> PgTypeInfo { function upsert_collab_embeddings (line 95) | pub async fn upsert_collab_embeddings( function get_collab_embedding_fragment (line 122) | pub async fn get_collab_embedding_fragment<'a, E>( function get_collab_embedding_fragment_ids (line 164) | pub async fn get_collab_embedding_fragment_ids<'a, E>( function stream_collabs_without_embeddings (line 193) | pub async fn stream_collabs_without_embeddings( function update_collab_indexed_at (line 223) | pub async fn update_collab_indexed_at<'a, E>( function get_collabs_indexed_at (line 249) | pub async fn get_collabs_indexed_at<'a, E>( type CollabId (line 275) | pub struct CollabId { method from (line 282) | fn from(value: CollabId) -> Self { FILE: libs/database/src/index/search_ops.rs function search_documents (line 14) | pub async fn search_documents<'a, E: Executor<'a, Database = Postgres>>( function _cosine_relevance_score_fn (line 111) | fn _cosine_relevance_score_fn(distance: f64) -> f64 { type SearchDocumentParams (line 123) | pub struct SearchDocumentParams { type SearchDocumentRow (line 141) | pub struct SearchDocumentRow { type SearchDocumentResult (line 161) | pub struct SearchDocumentResult { FILE: libs/database/src/listener.rs type PostgresDBListener (line 8) | pub struct PostgresDBListener { function new (line 16) | pub async fn new(pg_pool: &PgPool, channel: &str) -> Result { FILE: libs/database/src/notification.rs function select_recent_page_mentions (line 7) | pub async fn select_recent_page_mentions<'a, E: Executor<'a, Database = ... function update_page_mention_notification_status (line 52) | pub async fn update_page_mention_notification_status<'a, E: Executor<'a,... FILE: libs/database/src/pg_row.rs type AFWorkspaceRow (line 18) | pub struct AFWorkspaceRow { type Error (line 32) | type Error = AppError; method try_from (line 34) | fn try_from(value: AFWorkspaceRow) -> Result { type AFWorkspaceRowWithMemberCountAndRole (line 63) | pub struct AFWorkspaceRowWithMemberCountAndRole { type Error (line 79) | type Error = AppError; method try_from (line 81) | fn try_from(value: AFWorkspaceRowWithMemberCountAndRole) -> Result Result Result { type AFWorkspaceMemberPermRow (line 220) | pub struct AFWorkspaceMemberPermRow { type AFWorkspaceMemberRow (line 227) | pub struct AFWorkspaceMemberRow { method from (line 237) | fn from(value: AFWorkspaceMemberRow) -> Self { type AFCollabMemberAccessLevelRow (line 249) | pub struct AFCollabMemberAccessLevelRow { type AFCollabMemberRow (line 256) | pub struct AFCollabMemberRow { type AFBlobStatus (line 264) | pub enum AFBlobStatus { method from (line 272) | fn from(value: i16) -> Self { type AFBlobSource (line 285) | pub enum AFBlobSource { method from (line 291) | fn from(value: i16) -> Self { type AFBlobMetadataRow (line 301) | pub struct AFBlobMetadataRow { type AFUserNotification (line 316) | pub struct AFUserNotification { type AFPermissionRow (line 321) | pub struct AFPermissionRow { type AFSnapshotRow (line 329) | pub struct AFSnapshotRow { type AFWorkspaceInvitationMinimal (line 341) | pub struct AFWorkspaceInvitationMinimal { type AFCollabRowMeta (line 350) | pub struct AFCollabRowMeta { type AFCollabData (line 360) | pub struct AFCollabData { type AFChatRow (line 368) | pub struct AFChatRow { type AFChatMessageRow (line 379) | pub struct AFChatMessageRow { type AFWebUserColumn (line 387) | pub struct AFWebUserColumn { method from (line 394) | fn from(val: AFWebUserColumn) -> Self { type AFWebUserWithEmailColumn (line 404) | pub struct AFWebUserWithEmailColumn { function mask_web_user_email (line 411) | fn mask_web_user_email(email: &str) -> String { method from (line 420) | fn from(val: AFWebUserWithEmailColumn) -> Self { type AFGlobalCommentRow (line 435) | pub struct AFGlobalCommentRow { method from (line 447) | fn from(val: AFGlobalCommentRow) -> Self { type AFReactionRow (line 461) | pub struct AFReactionRow { method from (line 468) | fn from(val: AFReactionRow) -> Self { type AFTemplateCategoryRow (line 478) | pub struct AFTemplateCategoryRow { method from (line 489) | fn from(value: AFTemplateCategoryRow) -> Self { type AFTemplateCategoryMinimalRow (line 504) | pub struct AFTemplateCategoryMinimalRow { method from (line 512) | fn from(value: AFTemplateCategoryMinimalRow) -> Self { type AFTemplateCategoryTypeColumn (line 524) | pub enum AFTemplateCategoryTypeColumn { method from (line 539) | fn from(val: TemplateCategoryType) -> Self { method from (line 530) | fn from(value: AFTemplateCategoryTypeColumn) -> Self { type AccountLinkColumn (line 549) | pub struct AccountLinkColumn { method from (line 555) | fn from(value: AccountLinkColumn) -> Self { type AFTemplateCreatorRow (line 565) | pub struct AFTemplateCreatorRow { method from (line 574) | fn from(value: AFTemplateCreatorRow) -> Self { type AFTemplateCreatorMinimalColumn (line 593) | pub struct AFTemplateCreatorMinimalColumn { method from (line 600) | fn from(value: AFTemplateCreatorMinimalColumn) -> Self { type AFTemplateMinimalRow (line 611) | pub struct AFTemplateMinimalRow { method from (line 625) | fn from(value: AFTemplateMinimalRow) -> Self { type AFTemplateRow (line 642) | pub struct AFTemplateRow { method from (line 658) | fn from(value: AFTemplateRow) -> Self { type AFTemplateGroupRow (line 685) | pub struct AFTemplateGroupRow { method from (line 691) | fn from(value: AFTemplateGroupRow) -> Self { type AFImportTask (line 704) | pub struct AFImportTask { type AFAccessRequestStatusColumn (line 717) | pub enum AFAccessRequestStatusColumn { method from (line 724) | fn from(value: AFAccessRequestStatusColumn) -> Self { type AFAccessRequesterColumn (line 734) | pub struct AFAccessRequesterColumn { method from (line 743) | fn from(value: AFAccessRequesterColumn) -> Self { type AFAccessRequestMinimalColumn (line 755) | pub struct AFAccessRequestMinimalColumn { method from (line 763) | fn from(value: AFAccessRequestMinimalColumn) -> Self { type AFAccessRequestWithViewIdColumn (line 774) | pub struct AFAccessRequestWithViewIdColumn { type Error (line 784) | type Error = anyhow::Error; method try_from (line 786) | fn try_from(value: AFAccessRequestWithViewIdColumn) -> Result Self { type AFPublishViewWithPublishInfo (line 817) | pub struct AFPublishViewWithPublishInfo { function test_mask_web_user_email (line 831) | fn test_mask_web_user_email() { FILE: libs/database/src/publish.rs function select_user_is_collab_publisher_for_all_views (line 10) | pub async fn select_user_is_collab_publisher_for_all_views( function select_workspace_publish_namespace_exists (line 38) | pub async fn select_workspace_publish_namespace_exists<'a, E: Executor<'... function insert_non_orginal_workspace_publish_namespace (line 59) | pub async fn insert_non_orginal_workspace_publish_namespace( function update_non_orginal_workspace_publish_namespace (line 86) | pub async fn update_non_orginal_workspace_publish_namespace( function update_workspace_default_publish_view (line 118) | pub async fn update_workspace_default_publish_view<'a, E: Executor<'a, D... function update_workspace_default_publish_view_set_null (line 146) | pub async fn update_workspace_default_publish_view_set_null< function select_workspace_publish_namespaces (line 176) | pub async fn select_workspace_publish_namespaces( function select_workspace_publish_namespace (line 196) | pub async fn select_workspace_publish_namespace( function delete_published_collabs (line 218) | async fn delete_published_collabs( function insert_or_replace_publish_collabs (line 245) | pub async fn insert_or_replace_publish_collabs( function select_publish_collab_meta (line 314) | pub async fn select_publish_collab_meta<'a, E: Executor<'a, Database = P... function set_published_collabs_as_unpublished (line 337) | pub async fn set_published_collabs_as_unpublished<'a, E: Executor<'a, Da... function update_published_collabs (line 370) | pub async fn update_published_collabs( function select_published_metadata_for_view_id (line 431) | pub async fn select_published_metadata_for_view_id( function select_published_data_for_view_id (line 449) | pub async fn select_published_data_for_view_id( function select_published_collab_workspace_view_id (line 467) | pub async fn select_published_collab_workspace_view_id<'a, E: Executor<'... function select_published_collab_blob (line 489) | pub async fn select_published_collab_blob<'a, E: Executor<'a, Database =... function select_default_published_view_id_for_namespace (line 511) | pub async fn select_default_published_view_id_for_namespace< function select_default_published_view_id (line 532) | pub async fn select_default_published_view_id<'a, E: Executor<'a, Databa... function select_most_recent_non_original_namespace (line 550) | async fn select_most_recent_non_original_namespace( function select_publish_info_for_view_ids (line 571) | pub async fn select_publish_info_for_view_ids( function select_published_collab_info (line 611) | pub async fn select_published_collab_info( function select_all_published_collab_info (line 622) | pub async fn select_all_published_collab_info( function use_non_orginal_namespace_if_possible (line 653) | async fn use_non_orginal_namespace_if_possible( function select_workspace_id_for_publish_namespace (line 671) | pub async fn select_workspace_id_for_publish_namespace<'a, E: Executor<'... function select_published_view_ids_for_workspace (line 689) | pub async fn select_published_view_ids_for_workspace<'a, E: Executor<'a,... function select_published_view_ids_with_publish_info_for_workspace (line 708) | pub async fn select_published_view_ids_with_publish_info_for_workspace< FILE: libs/database/src/quick_note.rs function insert_new_quick_note (line 8) | pub async fn insert_new_quick_note<'a, E: Executor<'a, Database = Postgr... function select_quick_notes_with_one_more_than_limit (line 29) | pub async fn select_quick_notes_with_one_more_than_limit< function update_quick_note_by_id (line 78) | pub async fn update_quick_note_by_id<'a, E: Executor<'a, Database = Post... function delete_quick_note_by_id (line 93) | pub async fn delete_quick_note_by_id<'a, E: Executor<'a, Database = Post... FILE: libs/database/src/resource_usage.rs function is_blob_metadata_exists (line 13) | pub async fn is_blob_metadata_exists( function insert_blob_metadata (line 36) | pub async fn insert_blob_metadata( type BulkInsertMeta (line 67) | pub struct BulkInsertMeta { function insert_blob_metadata_bulk (line 75) | pub async fn insert_blob_metadata_bulk<'a, E: Executor<'a, Database = Po... function delete_blob_metadata (line 114) | pub async fn delete_blob_metadata( function get_blob_metadata (line 135) | pub async fn get_blob_metadata( function get_all_workspace_blob_metadata (line 163) | pub async fn get_all_workspace_blob_metadata( function get_all_workspace_blob_ids (line 183) | pub async fn get_all_workspace_blob_ids( function get_workspace_usage_size (line 205) | pub async fn get_workspace_usage_size(pool: &PgPool, workspace_id: &Uuid... FILE: libs/database/src/template.rs function insert_new_template_category (line 14) | pub async fn insert_new_template_category<'a, E: Executor<'a, Database =... function update_template_category_by_id (line 51) | pub async fn update_template_category_by_id<'a, E: Executor<'a, Database... function select_template_categories (line 97) | pub async fn select_template_categories<'a, E: Executor<'a, Database = P... function select_template_category_by_id (line 135) | pub async fn select_template_category_by_id<'a, E: Executor<'a, Database... function delete_template_category_by_id (line 160) | pub async fn delete_template_category_by_id<'a, E: Executor<'a, Database... function insert_template_creator (line 176) | pub async fn insert_template_creator<'a, E: Executor<'a, Database = Post... function update_template_creator_by_id (line 228) | pub async fn update_template_creator_by_id<'a, E: Executor<'a, Database ... function delete_template_creator_account_links (line 293) | pub async fn delete_template_creator_account_links<'a, E: Executor<'a, D... function select_template_creators_by_name (line 309) | pub async fn select_template_creators_by_name<'a, E: Executor<'a, Databa... function select_template_creator_by_id (line 348) | pub async fn select_template_creator_by_id<'a, E: Executor<'a, Database ... function delete_template_creator_by_id (line 385) | pub async fn delete_template_creator_by_id<'a, E: Executor<'a, Database ... function insert_template_view_template_category (line 401) | pub async fn insert_template_view_template_category<'a, E: Executor<'a, ... function delete_template_view_template_categories (line 427) | pub async fn delete_template_view_template_categories<'a, E: Executor<'a... function insert_related_templates (line 443) | pub async fn insert_related_templates<'a, E: Executor<'a, Database = Pos... function delete_related_templates (line 462) | pub async fn delete_related_templates<'a, E: Executor<'a, Database = Pos... function insert_template_view (line 479) | pub async fn insert_template_view<'a, E: Executor<'a, Database = Postgre... function update_template_view (line 519) | pub async fn update_template_view<'a, E: Executor<'a, Database = Postgre... function select_template_view_by_id (line 557) | pub async fn select_template_view_by_id<'a, E: Executor<'a, Database = P... function select_templates (line 702) | pub async fn select_templates<'a, E: Executor<'a, Database = Postgres>>( function select_template_homepage (line 785) | pub async fn select_template_homepage<'a, E: Executor<'a, Database = Pos... function delete_template_by_view_id (line 878) | pub async fn delete_template_by_view_id<'a, E: Executor<'a, Database = P... FILE: libs/database/src/user.rs function update_user (line 29) | pub async fn update_user( function create_user (line 104) | pub async fn create_user<'a, E: Executor<'a, Database = Postgres>>( function select_uuid_from_uid (line 149) | pub async fn select_uuid_from_uid<'a, E: Executor<'a, Database = Postgre... function select_uid_from_uuid (line 166) | pub async fn select_uid_from_uuid<'a, E: Executor<'a, Database = Postgre... function select_all_uid_uuid (line 182) | pub fn select_all_uid_uuid<'a, E: Executor<'a, Database = Postgres> + 'a>( function select_uid_from_email (line 189) | pub async fn select_uid_from_email<'a, E: Executor<'a, Database = Postgr... function is_user_exist (line 206) | pub async fn is_user_exist<'a, E: Executor<'a, Database = Postgres>>( function select_email_from_user_uuid (line 227) | pub async fn select_email_from_user_uuid( function select_email_from_user_uid (line 243) | pub async fn select_email_from_user_uid(pool: &PgPool, user_uid: i64) ->... function select_name_from_uuid (line 256) | pub async fn select_name_from_uuid(pool: &PgPool, user_uuid: &Uuid) -> R... function select_name_and_email_from_uuid (line 268) | pub async fn select_name_and_email_from_uuid( function select_web_user_from_uid (line 284) | pub async fn select_web_user_from_uid( function select_user_with_avatar (line 307) | pub async fn select_user_with_avatar<'a, E: Executor<'a, Database = Post... FILE: libs/database/src/workspace.rs function delete_from_workspace (line 23) | pub async fn delete_from_workspace(pg_pool: &PgPool, workspace_id: &Uuid... function insert_user_workspace (line 46) | pub async fn insert_user_workspace( function rename_workspace (line 87) | pub async fn rename_workspace( function change_workspace_icon (line 111) | pub async fn change_workspace_icon( function select_user_is_workspace_owner (line 140) | pub async fn select_user_is_workspace_owner( function select_user_is_allowed_to_delete_comment (line 167) | pub async fn select_user_is_allowed_to_delete_comment( function select_user_role (line 199) | pub async fn select_user_role<'a, E: Executor<'a, Database = Postgres>>( function upsert_workspace_member_with_txn (line 218) | pub async fn upsert_workspace_member_with_txn( function insert_workspace_invitation (line 246) | pub async fn insert_workspace_invitation( function update_workspace_invitation_set_status_accepted (line 284) | pub async fn update_workspace_invitation_set_status_accepted( function get_invitation_by_id (line 318) | pub async fn get_invitation_by_id( function select_workspace_invitations_for_user (line 344) | pub async fn select_workspace_invitations_for_user( function select_workspace_invitation_for_user (line 381) | pub async fn select_workspace_invitation_for_user( function upsert_workspace_member (line 419) | pub async fn upsert_workspace_member( function delete_workspace_members (line 454) | pub async fn delete_workspace_members( function select_workspace_member_perm_stream (line 506) | pub fn select_workspace_member_perm_stream( function select_email_belongs_to_a_workspace_member (line 516) | pub async fn select_email_belongs_to_a_workspace_member( function select_workspace_member_uuid_exclude_guest (line 540) | pub async fn select_workspace_member_uuid_exclude_guest( function select_workspace_member_list_exclude_guest (line 563) | pub async fn select_workspace_member_list_exclude_guest( function select_workspace_member (line 592) | pub async fn select_workspace_member<'a, E: Executor<'a, Database = Post... function select_workspace_owner (line 620) | pub async fn select_workspace_owner<'a, E: Executor<'a, Database = Postg... function select_workspace_member_by_uuid (line 647) | pub async fn select_workspace_member_by_uuid<'a, E: Executor<'a, Databas... function select_user_profile (line 676) | pub async fn select_user_profile<'a, E: Executor<'a, Database = Postgres>>( function select_workspace (line 717) | pub async fn select_workspace<'a, E: Executor<'a, Database = Postgres>>( function select_workspace_with_count_and_role (line 748) | pub async fn select_workspace_with_count_and_role<'a, E: Executor<'a, Da... function select_workspace_database_storage_id (line 796) | pub async fn select_workspace_database_storage_id<'a, E: Executor<'a, Da... function update_updated_at_of_workspace (line 817) | pub async fn update_updated_at_of_workspace<'a, E: Executor<'a, Database... function update_updated_at_of_workspace_with_uid (line 837) | pub async fn update_updated_at_of_workspace_with_uid<'a, E: Executor<'a,... function select_all_user_workspaces (line 863) | pub async fn select_all_user_workspaces<'a, E: Executor<'a, Database = P... function select_all_user_non_guest_workspaces (line 919) | pub async fn select_all_user_non_guest_workspaces<'a, E: Executor<'a, Da... function select_user_owned_workspaces_id (line 975) | pub async fn select_user_owned_workspaces_id<'a, E: Executor<'a, Databas... function insert_workspace_ids_to_deleted_table (line 992) | pub async fn insert_workspace_ids_to_deleted_table<'a, E>( function update_workspace_status (line 1011) | pub async fn update_workspace_status<'a, E: Executor<'a, Database = Post... function select_member_count_for_workspaces (line 1037) | pub async fn select_member_count_for_workspaces<'a, E: Executor<'a, Data... function select_roles_for_workspaces (line 1066) | pub async fn select_roles_for_workspaces( function select_permission (line 1093) | pub async fn select_permission( function select_permission_from_role_id (line 1109) | pub async fn select_permission_from_role_id( function select_workspace_total_collab_bytes (line 1127) | pub async fn select_workspace_total_collab_bytes( function select_workspace_name_from_workspace_id (line 1150) | pub async fn select_workspace_name_from_workspace_id( function select_workspace_member_count_from_workspace_id (line 1168) | pub async fn select_workspace_member_count_from_workspace_id( function select_workspace_pending_invitations (line 1188) | pub async fn select_workspace_pending_invitations( function is_workspace_exist (line 1213) | pub async fn is_workspace_exist<'a, E: Executor<'a, Database = Postgres>>( function select_workspace_settings (line 1233) | pub async fn select_workspace_settings<'a, E: Executor<'a, Database = Po... function upsert_workspace_settings (line 1252) | pub async fn upsert_workspace_settings( function select_owner_of_published_collab (line 1287) | pub async fn select_owner_of_published_collab<'a, E: Executor<'a, Databa... function select_comments_for_published_view_ordered_by_recency (line 1306) | pub async fn select_comments_for_published_view_ordered_by_recency< function insert_comment_to_published_view (line 1344) | pub async fn insert_comment_to_published_view<'a, E: Executor<'a, Databa... function update_comment_deletion_status (line 1374) | pub async fn update_comment_deletion_status<'a, E: Executor<'a, Database... function select_reactions_for_published_view_ordered_by_reaction_type_creation_time (line 1400) | pub async fn select_reactions_for_published_view_ordered_by_reaction_typ... function select_reactions_for_comment_ordered_by_reaction_type_creation_time (line 1429) | pub async fn select_reactions_for_comment_ordered_by_reaction_type_creat... function insert_reaction_on_comment (line 1458) | pub async fn insert_reaction_on_comment<'a, E: Executor<'a, Database = P... function delete_reaction_from_comment (line 1488) | pub async fn delete_reaction_from_comment<'a, E: Executor<'a, Database =... function select_user_is_invitee_for_workspace_invitation (line 1514) | pub async fn select_user_is_invitee_for_workspace_invitation( function select_import_task (line 1535) | pub async fn select_import_task( function select_import_task_by_state (line 1549) | pub async fn select_import_task_by_state( type ImportTaskState (line 1577) | pub enum ImportTaskState { method from (line 1586) | fn from(val: i16) -> Self { function update_import_task_status (line 1602) | pub async fn update_import_task_status<'a, E: Executor<'a, Database = Po... function insert_import_task (line 1625) | pub async fn insert_import_task( function update_import_task_metadata (line 1661) | pub async fn update_import_task_metadata( function select_publish_name_exists (line 1689) | pub async fn select_publish_name_exists( function select_view_id_from_publish_name (line 1714) | pub async fn select_view_id_from_publish_name( function select_invited_workspace_id (line 1736) | pub async fn select_invited_workspace_id( function select_invitation_code_info (line 1755) | pub async fn select_invitation_code_info<'a, E: Executor<'a, Database = ... function upsert_workspace_member_uid (line 1797) | pub async fn upsert_workspace_member_uid<'a, E: Executor<'a, Database = ... function select_invite_code_for_workspace_id (line 1820) | pub async fn select_invite_code_for_workspace_id<'a, E: Executor<'a, Dat... function delete_all_invite_code_for_workspace (line 1838) | pub async fn delete_all_invite_code_for_workspace<'a, E: Executor<'a, Da... function insert_workspace_invite_code (line 1855) | pub async fn insert_workspace_invite_code<'a, E: Executor<'a, Database =... function select_workspace_member_uids (line 1877) | pub async fn select_workspace_member_uids<'a, E: Executor<'a, Database =... function select_workspace_mentionable_members_or_guests (line 1896) | pub async fn select_workspace_mentionable_members_or_guests< function select_workspace_mentionable_members_or_guests_with_last_mentioned_time (line 1928) | pub async fn select_workspace_mentionable_members_or_guests_with_last_me... function select_workspace_mentionable_member_or_guest_by_uuid (line 1972) | pub async fn select_workspace_mentionable_member_or_guest_by_uuid< function upsert_workspace_member_profile (line 2007) | pub async fn upsert_workspace_member_profile<'a, E: Executor<'a, Databas... function select_page_mentions_by_user (line 2038) | pub async fn select_page_mentions_by_user<'a, E: Executor<'a, Database =... function upsert_page_mention (line 2060) | pub async fn upsert_page_mention<'a, E: Executor<'a, Database = Postgres>>( FILE: libs/gotrue-entity/src/dto.rs type Identity (line 6) | pub struct Identity { type AdminListUsersResponse (line 17) | pub struct AdminListUsersResponse { type User (line 23) | pub struct User { type Factor (line 66) | pub struct Factor { type GotrueTokenResponse (line 76) | pub struct GotrueTokenResponse { method fmt (line 93) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type GoTrueSettings (line 102) | pub struct GoTrueSettings { type GoTrueOAuthProviderSettings (line 113) | pub struct GoTrueOAuthProviderSettings(BTreeMap); method has_provider (line 116) | pub fn has_provider(&self, p: &AuthProvider) -> bool { method oauth_providers (line 124) | pub fn oauth_providers(&self) -> Vec<&str> { type AuthProvider (line 134) | pub enum AuthProvider { method as_str (line 162) | pub fn as_str(&self) -> &str { method from (line 190) | pub fn from>(value: A) -> Option { type OAuthURL (line 219) | pub struct OAuthURL { type SignUpResponse (line 224) | pub enum SignUpResponse { type UpdateGotrueUserParams (line 229) | pub struct UpdateGotrueUserParams { method new (line 242) | pub fn new() -> Self { method with_opt_email (line 246) | pub fn with_opt_email(mut self, email: Option) -> Self { method with_opt_password (line 251) | pub fn with_opt_password(mut self, password: Option) -... FILE: libs/gotrue-entity/src/gotrue_jwt.rs type GoTrueServiceRoleClaims (line 6) | pub struct GoTrueServiceRoleClaims { method encode (line 11) | pub fn encode(&self, jwt_secret: &[u8]) -> Result Result) -> std::fmt::Result { type Amr (line 51) | pub struct Amr { FILE: libs/gotrue-entity/src/sso.rs type SSOProviders (line 6) | pub struct SSOProviders { type SSOProvider (line 11) | pub struct SSOProvider { type SAMLProvider (line 20) | pub struct SAMLProvider { type SAMLAttributeMapping (line 28) | pub struct SAMLAttributeMapping { type SAMLAttribute (line 33) | pub struct SAMLAttribute { type SSODomain (line 39) | pub struct SSODomain { FILE: libs/gotrue/src/api.rs type Client (line 20) | pub struct Client { method new (line 26) | pub fn new(client: reqwest::Client, base_url: &str) -> Self { method oauth_url (line 33) | pub fn oauth_url(&self, provider: &AuthProvider) -> String { method health (line 38) | pub async fn health(&self) -> Result<(), GoTrueError> { method settings (line 51) | pub async fn settings(&self) -> Result { method sign_up (line 59) | pub async fn sign_up( method token (line 80) | pub async fn token(&self, grant: &Grant) -> Result Result<(), GoTrueErr... method user_info (line 140) | pub async fn user_info(&self, access_token: &str) -> Result(resp: reqwest::Response) -> Result Result<(), GoTr... FILE: libs/gotrue/src/grant.rs type Grant (line 3) | pub enum Grant { method type_as_str (line 20) | pub fn type_as_str(&self) -> &str { method json_value (line 29) | pub fn json_value(&self) -> serde_json::Value { type PasswordGrant (line 10) | pub struct PasswordGrant { type RefreshTokenGrant (line 15) | pub struct RefreshTokenGrant { FILE: libs/gotrue/src/params.rs type AdminDeleteUserParams (line 7) | pub struct AdminDeleteUserParams { type InviteUserParams (line 12) | pub struct InviteUserParams { type AdminUserParams (line 18) | pub struct AdminUserParams { type GenerateLinkParams (line 32) | pub struct GenerateLinkParams { type MagicLinkParams (line 44) | pub struct MagicLinkParams { method default (line 52) | fn default() -> Self { type GenerateLinkType (line 66) | pub enum GenerateLinkType { type GenerateLinkResponse (line 79) | pub struct GenerateLinkResponse { type CreateSSOProviderParams (line 116) | pub struct CreateSSOProviderParams { type VerifyType (line 127) | pub enum VerifyType { type VerifyParams (line 133) | pub struct VerifyParams { type RecoverParams (line 141) | pub struct RecoverParams { FILE: libs/indexer/src/collab_indexer/document_indexer.rs type DocumentIndexer (line 18) | pub struct DocumentIndexer; method create_embedded_chunks_from_collab (line 22) | fn create_embedded_chunks_from_collab( method create_embedded_chunks_from_text (line 39) | fn create_embedded_chunks_from_text( method embed (line 67) | async fn embed( function split_text_into_chunks (line 131) | pub fn split_text_into_chunks( FILE: libs/indexer/src/collab_indexer/provider.rs type Indexer (line 16) | pub trait Indexer: Send + Sync { method create_embedded_chunks_from_collab (line 17) | fn create_embedded_chunks_from_collab( method create_embedded_chunks_from_text (line 23) | fn create_embedded_chunks_from_text( method embed (line 30) | async fn embed( type IndexerProvider (line 39) | pub struct IndexerProvider { method new (line 44) | pub fn new() -> Arc { method indexer_for (line 62) | pub fn indexer_for(&self, collab_type: CollabType) -> Option bool { FILE: libs/indexer/src/entity.rs type UnindexedCollab (line 6) | pub struct UnindexedCollab { type EmbeddingRecord (line 13) | pub struct EmbeddingRecord { method empty (line 22) | pub fn empty(workspace_id: Uuid, object_id: Uuid, collab_type: CollabT... FILE: libs/indexer/src/error.rs type IndexerError (line 2) | pub enum IndexerError { FILE: libs/indexer/src/metrics.rs type EmbeddingMetrics (line 4) | pub struct EmbeddingMetrics { method init (line 13) | fn init() -> Self { method register (line 23) | pub fn register(registry: &mut Registry) -> Self { method record_embed_count (line 59) | pub fn record_embed_count(&self, count: u64) { method record_failed_embed_count (line 63) | pub fn record_failed_embed_count(&self, count: u64) { method record_fallback_background_tasks (line 67) | pub fn record_fallback_background_tasks(&self, count: u64) { method record_write_embedding_time (line 71) | pub fn record_write_embedding_time(&self, millis: u128) { method record_gen_embedding_time (line 75) | pub fn record_gen_embedding_time(&self, num: u32, millis: u128) { FILE: libs/indexer/src/queue.rs constant INDEX_TASK_STREAM_NAME (line 11) | pub const INDEX_TASK_STREAM_NAME: &str = "index_collab_task_stream"; constant INDEXER_WORKER_GROUP_NAME (line 12) | const INDEXER_WORKER_GROUP_NAME: &str = "indexer_worker_group"; constant INDEXER_CONSUMER_NAME (line 13) | const INDEXER_CONSUMER_NAME: &str = "appflowy_worker"; type Error (line 16) | type Error = IndexerError; method try_from (line 18) | fn try_from(stream_id: &StreamId) -> Result { function add_background_embed_task (line 48) | pub async fn add_background_embed_task( function read_background_embed_tasks (line 74) | pub async fn read_background_embed_tasks( function ack_task (line 112) | pub async fn ack_task( function default_indexer_group_option (line 142) | pub fn default_indexer_group_option(limit: usize) -> StreamReadOptions { function ensure_indexer_consumer_group (line 149) | pub async fn ensure_indexer_consumer_group( FILE: libs/indexer/src/scheduler.rs type IndexerScheduler (line 36) | pub struct IndexerScheduler { method new (line 58) | pub fn new( method index_enabled (line 113) | fn index_enabled(&self) -> bool { method is_indexing_enabled (line 118) | pub fn is_indexing_enabled(&self, collab_type: CollabType) -> bool { method create_embedder (line 122) | pub(crate) fn create_embedder(&self) -> Result { method create_search_embeddings (line 140) | pub async fn create_search_embeddings( method embed_in_background (line 149) | pub fn embed_in_background( method embed_immediately (line 162) | pub fn embed_immediately(&self, pending_collab: UnindexedCollabTask) -... method index_pending_collab_one (line 182) | pub fn index_pending_collab_one( method index_pending_collabs (line 207) | pub fn index_pending_collabs( method index_collab_immediately (line 226) | pub async fn index_collab_immediately( method can_index_workspace (line 266) | pub async fn can_index_workspace(&self, workspace_id: &Uuid) -> Result... type IndexerConfiguration (line 49) | pub struct IndexerConfiguration { function generate_embeddings_loop (line 279) | async fn generate_embeddings_loop( constant EMBEDDING_RECORD_BUFFER_SIZE (line 410) | const EMBEDDING_RECORD_BUFFER_SIZE: usize = 10; function spawn_pg_write_embeddings (line 411) | pub async fn spawn_pg_write_embeddings( function batch_insert_records (line 458) | pub(crate) async fn batch_insert_records( type UnindexedCollabTask (line 496) | pub struct UnindexedCollabTask { method new (line 505) | pub fn new( type UnindexedData (line 522) | pub enum UnindexedData { method is_empty (line 528) | pub fn is_empty(&self) -> bool { FILE: libs/indexer/src/unindexed_workspace.rs function index_workspace (line 34) | pub(crate) async fn index_workspace(scheduler: Arc, wo... function _index_then_write_embedding_to_disk (line 71) | async fn _index_then_write_embedding_to_disk( function stream_unindexed_collabs (line 126) | async fn stream_unindexed_collabs( function _create_embeddings (line 174) | async fn _create_embeddings( function compute_embedding_records (line 224) | fn compute_embedding_records( FILE: libs/indexer/src/vector/embedder.rs type AFEmbedder (line 14) | pub enum AFEmbedder { method async_embed (line 20) | pub async fn async_embed( method model (line 30) | pub fn model(&self) -> EmbeddingModel { function get_open_ai_config (line 35) | pub fn get_open_ai_config() -> (Option, Option Option { function azure_open_ai_config (line 55) | fn azure_open_ai_config() -> Option { FILE: libs/indexer/src/vector/open_ai.rs constant OPENAI_EMBEDDINGS_URL (line 10) | pub const OPENAI_EMBEDDINGS_URL: &str = "https://api.openai.com/v1/embed... constant REQUEST_PARALLELISM (line 12) | pub const REQUEST_PARALLELISM: usize = 40; type OpenAIEmbedder (line 15) | pub struct OpenAIEmbedder { method new (line 20) | pub fn new(config: OpenAIConfig) -> Self { type AzureOpenAIEmbedder (line 28) | pub struct AzureOpenAIEmbedder { method new (line 33) | pub fn new(mut config: AzureConfig) -> Self { function async_embed (line 41) | pub async fn async_embed( function split_text_by_max_tokens (line 88) | pub fn split_text_by_max_tokens( function group_paragraphs_by_max_content_len (line 153) | pub fn group_paragraphs_by_max_content_len( function test_split_at_non_utf8 (line 207) | fn test_split_at_non_utf8() { function test_exact_boundary_split (line 226) | fn test_exact_boundary_split() { function test_content_shorter_than_max_len (line 238) | fn test_content_shorter_than_max_len() { function test_empty_content (line 249) | fn test_empty_content() { function test_content_with_only_multibyte_characters (line 261) | fn test_content_with_only_multibyte_characters() { function test_split_with_combining_characters (line 274) | fn test_split_with_combining_characters() { function test_large_content (line 291) | fn test_large_content() { function test_non_ascii_characters (line 303) | fn test_non_ascii_characters() { function test_content_with_leading_and_trailing_whitespace (line 321) | fn test_content_with_leading_and_trailing_whitespace() { function test_content_with_multiple_zero_width_joiners (line 339) | fn test_content_with_multiple_zero_width_joiners() { function test_content_with_long_combining_sequences (line 353) | fn test_content_with_long_combining_sequences() { function test_multiple_paragraphs_single_chunk (line 367) | fn test_multiple_paragraphs_single_chunk() { function test_large_paragraph_splitting (line 382) | fn test_large_paragraph_splitting() { function test_overlap_larger_than_context_size (line 408) | fn test_overlap_larger_than_context_size() { function test_exact_fit (line 427) | fn test_exact_fit() { function test_edit_paragraphs (line 442) | fn test_edit_paragraphs() { FILE: libs/infra/src/env_util.rs function get_env_var (line 3) | pub fn get_env_var(key: &str, default: &str) -> String { function get_env_var_opt (line 23) | pub fn get_env_var_opt(key: &str) -> Option { FILE: libs/infra/src/file_util.rs constant MIN_CHUNK_SIZE (line 7) | pub const MIN_CHUNK_SIZE: usize = 5 * 1024 * 1024; type ChunkedBytes (line 8) | pub struct ChunkedBytes { method from_bytes_with_chunk_size (line 23) | pub fn from_bytes_with_chunk_size(data: Bytes, chunk_size: i32) -> Res... method from_bytes (line 40) | pub fn from_bytes(data: Bytes) -> Result { method from_file (line 50) | pub async fn from_file(file_path: &PathBuf, chunk_size: i32) -> Result... method set_chunk_size (line 64) | pub fn set_chunk_size(&mut self, chunk_size: i32) -> Result<(), anyhow... method iter (line 77) | pub fn iter(&self) -> ChunkedBytesIterator { type Target (line 15) | type Target = Bytes; method deref (line 17) | fn deref(&self) -> &Self::Target { type ChunkedBytesIterator (line 85) | pub struct ChunkedBytesIterator<'a> { type Item (line 90) | type Item = Bytes; method next (line 92) | fn next(&mut self) -> Option { function split_into_chunks (line 103) | pub fn split_into_chunks(data: &Bytes, chunk_size: usize) -> Vec<(usize,... function get_chunk (line 116) | pub async fn get_chunk( function test_chunked_bytes_less_than_chunk_size (line 139) | async fn test_chunked_bytes_less_than_chunk_size() { function test_chunked_bytes_from_bytes (line 155) | async fn test_chunked_bytes_from_bytes() { function test_chunked_bytes_from_file (line 178) | async fn test_chunked_bytes_from_file() { FILE: libs/infra/src/reqwest.rs function check_response (line 16) | pub async fn check_response(resp: reqwest::Response) -> Result<(), Error> { function from_response (line 26) | pub async fn from_response(resp: reqwest::Response) -> Result function from_body (line 38) | pub async fn from_body(resp: reqwest::Response) -> Result type JsonStream (line 55) | pub struct JsonStream { function new (line 68) | pub fn new(stream: S) -> Self type Item (line 87) | type Item = Result; method poll_next (line 89) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { function new (line 172) | pub fn new(stream: S) -> Self type Item (line 188) | type Item = Result; method poll_next (line 190) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll(&self, op: OP) -> Result method current_num_threads (line 51) | pub fn current_num_threads(&self) -> usize { type CatchedPanic (line 61) | pub struct CatchedPanic; type ThreadPoolNoAbortBuilder (line 67) | pub struct ThreadPoolNoAbortBuilder(ThreadPoolBuilder); method new (line 70) | pub fn new() -> ThreadPoolNoAbortBuilder { method thread_name (line 79) | pub fn thread_name(mut self, closure: F) -> Self method num_threads (line 91) | pub fn num_threads(mut self, num_threads: usize) -> ThreadPoolNoAbortB... method build (line 105) | pub fn build(mut self) -> Result io::Result { FILE: libs/infra/src/validate.rs function validate_not_empty_str (line 3) | pub fn validate_not_empty_str(s: &str) -> Result<(), ValidationError> { function validate_not_empty_payload (line 10) | pub fn validate_not_empty_payload(payload: &[u8]) -> Result<(), Validati... FILE: libs/llm-client/src/chat.rs type AITool (line 14) | pub enum AITool { method summarize_documents (line 20) | pub async fn summarize_documents( type OpenAIChat (line 59) | pub struct OpenAIChat { method new (line 64) | pub fn new(config: OpenAIConfig) -> Self { type AzureOpenAIChat (line 70) | pub struct AzureOpenAIChat { method new (line 75) | pub fn new(config: AzureConfig) -> Self { type SearchSummary (line 82) | pub struct SearchSummary { type SummarySearchResponse (line 90) | pub struct SummarySearchResponse { type SummarySearchSchema (line 96) | struct SummarySearchSchema { constant SYSTEM_PROMPT (line 103) | const SYSTEM_PROMPT: &str = r#" constant ONLY_CONTEXT_SYSTEM_PROMPT (line 121) | const ONLY_CONTEXT_SYSTEM_PROMPT: &str = r#" type LLMDocument (line 137) | pub struct LLMDocument { method new (line 143) | pub fn new(content: String, object_id: Uuid) -> Self { function convert_documents_to_text (line 148) | fn convert_documents_to_text(documents: Vec) -> String { function summarize_documents (line 156) | pub async fn summarize_documents( FILE: libs/mailer/src/config.rs type MailerSetting (line 4) | pub struct MailerSetting { FILE: libs/mailer/src/sender.rs type Mailer (line 13) | pub struct Mailer { method new (line 19) | pub async fn new( method register_template (line 49) | pub async fn register_template( method render (line 58) | pub fn render(&self, name: &str, param: &T) -> Result( FILE: libs/shared-entity/src/dto/access_request_dto.rs type AccessRequestView (line 8) | pub struct AccessRequestView { type AccessRequest (line 16) | pub struct AccessRequest { FILE: libs/shared-entity/src/dto/ai_dto.rs type SummarizeRowParams (line 8) | pub struct SummarizeRowParams { type SummarizeRowData (line 15) | pub enum SummarizeRowData { type SummarizeRowResponse (line 30) | pub struct SummarizeRowResponse { type StringOrMessage (line 35) | pub enum StringOrMessage { FILE: libs/shared-entity/src/dto/auth_dto.rs type SignInParams (line 8) | pub struct SignInParams { type UserMetaData (line 14) | pub struct UserMetaData(HashMap); method new (line 16) | pub fn new() -> Self { method into_inner (line 19) | pub fn into_inner(self) -> HashMap { method insert (line 23) | pub fn insert>(&mut self, key: &str, value:... type UpdateUserParams (line 29) | pub struct UpdateUserParams { method new (line 37) | pub fn new() -> Self { method with_password (line 40) | pub fn with_password(mut self, password: T) -> Self { method with_name (line 44) | pub fn with_name(mut self, name: T) -> Self { method with_email (line 48) | pub fn with_email(mut self, email: T) -> Self { method with_metadata (line 52) | pub fn with_metadata>(mut self, metadata: T) -> ... type SignInPasswordResponse (line 59) | pub struct SignInPasswordResponse { type SignInTokenResponse (line 65) | pub struct SignInTokenResponse { type DeleteUserQuery (line 70) | pub struct DeleteUserQuery { FILE: libs/shared-entity/src/dto/billing_dto.rs type RecurringInterval (line 7) | pub enum RecurringInterval { method as_str (line 13) | pub fn as_str(&self) -> &str { type Error (line 22) | type Error = String; method try_from (line 24) | fn try_from(value: i16) -> Result { type SubscriptionPlan (line 36) | pub enum SubscriptionPlan { type Error (line 46) | type Error = String; method try_from (line 48) | fn try_from(value: i16) -> Result { method as_ref (line 61) | fn as_ref(&self) -> &str { type Error (line 73) | type Error = String; method try_from (line 75) | fn try_from(value: &str) -> Result { type SubscriptionStatus (line 89) | pub enum SubscriptionStatus { type WorkspaceSubscriptionStatus (line 101) | pub struct WorkspaceSubscriptionStatus { type WorkspaceUsageAndLimit (line 112) | pub struct WorkspaceUsageAndLimit { type SubscriptionCancelRequest (line 132) | pub struct SubscriptionCancelRequest { type SetSubscriptionRecurringInterval (line 140) | pub struct SetSubscriptionRecurringInterval { type SubscriptionPlanDetail (line 147) | pub struct SubscriptionPlanDetail { type Currency (line 155) | pub enum Currency { type SubscriptionLinkRequest (line 161) | pub struct SubscriptionLinkRequest { type SubscriptionTrialRequest (line 170) | pub struct SubscriptionTrialRequest { type LicensedProductDetail (line 178) | pub struct LicensedProductDetail { type UserSubscribeProduct (line 187) | pub struct UserSubscribeProduct { type SubscribeProductLicense (line 193) | pub struct SubscribeProductLicense { type LicensedProductType (line 205) | pub enum LicensedProductType { type Error (line 218) | type Error = String; method try_from (line 220) | fn try_from(value: &str) -> Result { method fmt (line 212) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type LicenseProductSubscriptionLinkQuery (line 230) | pub struct LicenseProductSubscriptionLinkQuery { FILE: libs/shared-entity/src/dto/chat_dto.rs type CreateChatParams (line 13) | pub struct CreateChatParams { type UpdateChatParams (line 21) | pub struct UpdateChatParams { type CreateChatMessageParams (line 32) | pub struct CreateChatMessageParams { method new_system (line 168) | pub fn new_system(content: T) -> Self { method new_user (line 176) | pub fn new_user(content: T) -> Self { type ChatMetadataDescription (line 42) | pub struct ChatMetadataDescription { type ChatRAGData (line 50) | pub struct ChatRAGData { method from_text (line 66) | pub fn from_text(text: String) -> Self { method validate (line 86) | pub fn validate(&self) -> Result<(), anyhow::Error> { method new_text (line 134) | pub fn new_text(content: String) -> Self { type ContextLoader (line 115) | pub enum ContextLoader { method fmt (line 123) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type UpdateChatMessageMetaParams (line 145) | pub struct UpdateChatMessageMetaParams { type UpdateChatMessageContentParams (line 151) | pub struct UpdateChatMessageContentParams { type ChatMessageType (line 161) | pub enum ChatMessageType { type GetChatMessageParams (line 185) | pub struct GetChatMessageParams { method offset (line 191) | pub fn offset(offset: u64, limit: u64) -> Self { method after_message_id (line 198) | pub fn after_message_id(after_message_id: i64, limit: u64) -> Self { method before_message_id (line 204) | pub fn before_message_id(before_message_id: i64, limit: u64) -> Self { method next_back (line 211) | pub fn next_back(limit: u64) -> Self { type MessageCursor (line 220) | pub enum MessageCursor { type ChatMessage (line 228) | pub struct ChatMessage { method new_human (line 241) | pub fn new_human(message_id: i64, content: String, reply_message_id: O... method new_ai (line 252) | pub fn new_ai(message_id: i64, content: String, reply_message_id: Opti... method new_system (line 263) | pub fn new_system(message_id: i64, content: String) -> Self { type ChatMessageWithAuthorUuid (line 276) | pub struct ChatMessageWithAuthorUuid { type QAChatMessage (line 287) | pub struct QAChatMessage { type RepeatedChatMessage (line 293) | pub struct RepeatedChatMessage { type RepeatedChatMessageWithAuthorUuid (line 300) | pub struct RepeatedChatMessageWithAuthorUuid { type ChatSettings (line 307) | pub struct ChatSettings { type ChatAuthorType (line 316) | pub enum ChatAuthorType { type ChatAuthor (line 325) | pub struct ChatAuthor { method new (line 335) | pub fn new(author_id: i64, author_type: ChatAuthorType) -> Self { method ai (line 343) | pub fn ai() -> Self { type ChatAuthorWithUuid (line 353) | pub struct ChatAuthorWithUuid { method new (line 364) | pub fn new(author_id: i64, author_uuid: Uuid, author_type: ChatAuthorT... method ai (line 373) | pub fn ai() -> Self { type UpdateChatMessageResponse (line 384) | pub struct UpdateChatMessageResponse { type CreateAnswerMessageParams (line 389) | pub struct CreateAnswerMessageParams { FILE: libs/shared-entity/src/dto/file_dto.rs type PutFileResponse (line 4) | pub struct PutFileResponse { FILE: libs/shared-entity/src/dto/guest_dto.rs type SharedView (line 9) | pub struct SharedView { type SharedUser (line 15) | pub struct SharedUser { type SharedViewDetails (line 26) | pub struct SharedViewDetails { type SharedViewDetailsRequest (line 32) | pub struct SharedViewDetailsRequest { type SharedViews (line 37) | pub struct SharedViews { type RevokedAccess (line 43) | pub struct RevokedAccess { type GuestInviteCode (line 49) | pub struct GuestInviteCode { type SharedFolderView (line 54) | pub struct SharedFolderView { type ShareViewWithGuestRequest (line 70) | pub struct ShareViewWithGuestRequest { type RevokeSharedViewAccessRequest (line 81) | pub struct RevokeSharedViewAccessRequest { FILE: libs/shared-entity/src/dto/history_dto.rs type SnapshotMeta (line 4) | pub struct SnapshotMeta { type RepeatedSnapshotMeta (line 14) | pub struct RepeatedSnapshotMeta { type HistoryState (line 19) | pub struct HistoryState { type SnapshotInfo (line 29) | pub struct SnapshotInfo { FILE: libs/shared-entity/src/dto/import_dto.rs type UserImportTask (line 4) | pub struct UserImportTask { type ImportTaskDetail (line 10) | pub struct ImportTaskDetail { FILE: libs/shared-entity/src/dto/publish_dto.rs type PublishViewMeta (line 10) | pub struct PublishViewMeta { type PublishViewMetaData (line 17) | pub struct PublishViewMetaData { type PublishViewInfo (line 24) | pub struct PublishViewInfo { type PublishDatabasePayload (line 38) | pub struct PublishDatabasePayload { type PublishDatabaseData (line 44) | pub struct PublishDatabaseData { method from (line 87) | fn from(data: PublishDatabaseDataWithNonUuidRelations) -> Self { type PublishDatabaseDataWithNonUuidRelations (line 65) | pub struct PublishDatabaseDataWithNonUuidRelations { type DuplicatePublishedPageResponse (line 108) | pub struct DuplicatePublishedPageResponse { FILE: libs/shared-entity/src/dto/search_dto.rs type SearchDocumentRequest (line 9) | pub struct SearchDocumentRequest { type SearchResult (line 24) | pub struct SearchResult { method from (line 30) | fn from(value: &SearchDocumentResponseItem) -> Self { type SummarySearchResultRequest (line 39) | pub struct SummarySearchResultRequest { function default_search_score_limit (line 47) | fn default_search_score_limit() -> f64 { type Summary (line 53) | pub struct Summary { type SearchSummaryResult (line 63) | pub struct SearchSummaryResult { type SearchDocumentResponseItem (line 70) | pub struct SearchDocumentResponseItem { type SearchContentType (line 98) | pub enum SearchContentType { method from_record (line 105) | pub fn from_record(content_type: i32) -> Option { FILE: libs/shared-entity/src/dto/server_info_dto.rs type SupportedClientFeatures (line 4) | pub enum SupportedClientFeatures { type ServerInfoResponseItem (line 10) | pub struct ServerInfoResponseItem { FILE: libs/shared-entity/src/dto/workspace_dto.rs type WorkspaceMembers (line 12) | pub struct WorkspaceMembers(pub Vec); method from (line 23) | fn from(value: Vec) -> Self { type WorkspaceMember (line 14) | pub struct WorkspaceMember(pub String); type Target (line 16) | type Target = String; method deref (line 17) | fn deref(&self) -> &Self::Target { type CreateWorkspaceMembers (line 29) | pub struct CreateWorkspaceMembers(pub Vec); method from (line 31) | fn from(value: Vec) -> Self { type CreateWorkspaceMember (line 38) | pub struct CreateWorkspaceMember { type WorkspaceMemberInvitation (line 44) | pub struct WorkspaceMemberInvitation { method default (line 55) | fn default() -> Self { type WorkspaceInviteQuery (line 66) | pub struct WorkspaceInviteQuery { type WorkspaceMemberChangeset (line 71) | pub struct WorkspaceMemberChangeset { method new (line 78) | pub fn new(email: String) -> Self { method with_role (line 85) | pub fn with_role>(mut self, role: T) -> Self { method with_name (line 89) | pub fn with_name(mut self, name: String) -> Self { type WorkspaceSpaceUsage (line 96) | pub struct WorkspaceSpaceUsage { type RepeatedBlobMetaData (line 101) | pub struct RepeatedBlobMetaData(pub Vec); type BlobMetadata (line 104) | pub struct BlobMetadata { type CreateWorkspaceParam (line 113) | pub struct CreateWorkspaceParam { type PatchWorkspaceParam (line 120) | pub struct PatchWorkspaceParam { type CollabTypeParam (line 127) | pub struct CollabTypeParam { type RepeatedEmbeddedCollabQuery (line 132) | pub struct RepeatedEmbeddedCollabQuery(pub Vec); type EmbeddedCollabQuery (line 135) | pub struct EmbeddedCollabQuery { type CollabJsonResponse (line 141) | pub struct CollabJsonResponse { type CollabResponse (line 146) | pub struct CollabResponse { type CreateFolderViewParams (line 161) | pub struct CreateFolderViewParams { type Space (line 171) | pub struct Space { type Page (line 176) | pub struct Page { type CreateSpaceParams (line 181) | pub struct CreateSpaceParams { type UpdateSpaceParams (line 190) | pub struct UpdateSpaceParams { type CreatePageParams (line 198) | pub struct CreatePageParams { type CreateOrphanedViewParams (line 208) | pub struct CreateOrphanedViewParams { type UpdatePageParams (line 213) | pub struct UpdatePageParams { type UpdatePageNameParams (line 221) | pub struct UpdatePageNameParams { type UpdatePageIconParams (line 226) | pub struct UpdatePageIconParams { type UpdatePageExtraParams (line 231) | pub struct UpdatePageExtraParams { type FavoritePageParams (line 236) | pub struct FavoritePageParams { type AppendBlockToPageParams (line 242) | pub struct AppendBlockToPageParams { type MovePageParams (line 247) | pub struct MovePageParams { type ReorderFavoritePageParams (line 253) | pub struct ReorderFavoritePageParams { type AddRecentPagesParams (line 258) | pub struct AddRecentPagesParams { type DuplicatePageParams (line 263) | pub struct DuplicatePageParams { type CreatePageDatabaseViewParams (line 268) | pub struct CreatePageDatabaseViewParams { type PageCollabData (line 274) | pub struct PageCollabData { type PageCollab (line 280) | pub struct PageCollab { type PublishedDuplicate (line 288) | pub struct PublishedDuplicate { type RecentFolderView (line 294) | pub struct RecentFolderView { type FavoriteFolderView (line 301) | pub struct FavoriteFolderView { type TrashFolderView (line 309) | pub struct TrashFolderView { type RecentSectionItems (line 316) | pub struct RecentSectionItems { type FavoriteSectionItems (line 321) | pub struct FavoriteSectionItems { type TrashSectionItems (line 326) | pub struct TrashSectionItems { type FolderView (line 331) | pub struct FolderView { type FolderViewMinimal (line 353) | pub struct FolderViewMinimal { type PublishInfoView (line 362) | pub struct PublishInfoView { type PublishPageParams (line 368) | pub struct PublishPageParams { type IconType (line 377) | pub enum IconType { method from (line 384) | fn from(value: u8) -> Self { type ViewIcon (line 395) | pub struct ViewIcon { type ViewLayout (line 402) | pub enum ViewLayout { method fmt (line 411) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { method default (line 424) | fn default() -> Self { type SpacePermission (line 431) | pub enum SpacePermission { type QueryWorkspaceParam (line 437) | pub struct QueryWorkspaceParam { type ListDatabaseRowDetailParam (line 443) | pub struct ListDatabaseRowDetailParam { method new (line 464) | pub fn new(ids: &[&str], with_doc: bool) -> Self { method into_ids (line 470) | pub fn into_ids(&self) -> Result, AppError> { type ListDatabaseRowUpdatedParam (line 453) | pub struct ListDatabaseRowUpdatedParam { type DatabaseRowUpdatedItem (line 458) | pub struct DatabaseRowUpdatedItem { type QueryWorkspaceFolder (line 480) | pub struct QueryWorkspaceFolder { type PublishedView (line 486) | pub struct PublishedView { type PublishedViewInfo (line 500) | pub struct PublishedViewInfo { type AFDatabase (line 509) | pub struct AFDatabase { type AFDatabaseRow (line 515) | pub struct AFDatabaseRow { type AFDatabaseRowDetail (line 520) | pub struct AFDatabaseRowDetail { type AFDatabaseField (line 530) | pub struct AFDatabaseField { type AFInsertDatabaseField (line 539) | pub struct AFInsertDatabaseField { type AddDatatabaseRow (line 546) | pub struct AddDatatabaseRow { type UpsertDatatabaseRow (line 552) | pub struct UpsertDatatabaseRow { FILE: libs/shared-entity/src/request.rs type RequestData (line 4) | pub enum RequestData { FILE: libs/shared-entity/src/response.rs type AppResponse (line 32) | pub struct AppResponse { function new (line 44) | pub fn new>>(code: ErrorCode, message: M) -> S... function split (line 54) | pub fn split(self) -> (Option, AppResponseError) { function into_data (line 62) | pub fn into_data(self) -> Result { function into_error (line 75) | pub fn into_error(self) -> Result<(), AppResponseError> { function with_data (line 83) | pub fn with_data(mut self, data: T) -> Self { function with_message (line 88) | pub fn with_message(mut self, message: impl Into>) -> ... function with_code (line 93) | pub fn with_code(mut self, code: ErrorCode) -> Self { function is_ok (line 98) | pub fn is_ok(&self) -> bool { method fmt (line 107) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function from (line 124) | fn from(value: T1) -> Self { function from_response (line 134) | pub async fn from_response(resp: reqwest::Response) -> Result>) -> ... method is_record_not_found (line 162) | pub fn is_record_not_found(&self) -> bool { method is_user_unauthorized (line 166) | pub fn is_user_unauthorized(&self) -> bool { method from (line 175) | fn from(value: T) -> Self { method status_code (line 192) | fn status_code(&self) -> actix_web::http::StatusCode { method error_response (line 196) | fn error_response(&self) -> actix_web::HttpResponse { method fmt (line 185) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function default_error_code (line 204) | fn default_error_code<'a, D: Deserializer<'a>>(deserializer: D) -> Resul... FILE: libs/shared-entity/src/response_actix.rs type JsonAppResponse (line 7) | pub type JsonAppResponse = Json>; function from (line 10) | fn from(data: AppResponse) -> Self { function status_code (line 19) | fn status_code(&self) -> actix_web::http::StatusCode { function error_response (line 23) | fn error_response(&self) -> actix_web::HttpResponse { FILE: libs/shared-entity/src/response_stream.rs function json_response_stream (line 21) | pub async fn json_response_stream( function new_line_response_stream (line 45) | pub async fn new_line_response_stream( function answer_response_stream (line 59) | pub async fn answer_response_stream( type AnswerStream (line 90) | pub struct AnswerStream { method new (line 98) | pub fn new(stream: S) -> Self type Item (line 111) | type Item = Result; method poll_next (line 113) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll Snowflake { method next_id (line 25) | pub fn next_id(&mut self) -> i64 { method wait_next_millis (line 45) | fn wait_next_millis(&self) { method timestamp (line 52) | fn timestamp(&self) -> u64 { function gen_id (line 65) | fn gen_id() { FILE: libs/tonic-proto/build.rs function main (line 3) | fn main() -> Result<(), Box> { FILE: libs/workspace-template/src/database/database_collab.rs function create_database_collab (line 8) | pub async fn create_database_collab( FILE: libs/workspace-template/src/document/getting_started.rs type GettingStartedTemplate (line 32) | pub struct GettingStartedTemplate; method create_document_and_database_data (line 41) | async fn create_document_and_database_data( method build_getting_started_view (line 117) | async fn build_getting_started_view( method layout (line 178) | fn layout(&self) -> ViewLayout { method create (line 182) | async fn create(&self, _object_id: String) -> anyhow::Result Result { method from_data (line 302) | pub fn from_data(data: DocumentData) -> Self { method layout (line 309) | fn layout(&self) -> ViewLayout { method create (line 313) | async fn create(&self, object_id: String) -> anyhow::Result Result { function desktop_guide_document_data (line 351) | pub fn desktop_guide_document_data() -> Result { function mobile_guide_document_data (line 356) | pub fn mobile_guide_document_data() -> Result { function get_initial_document_data (line 361) | pub fn get_initial_document_data() -> Result { function replace_json_placeholders (line 370) | pub fn replace_json_placeholders(value: &mut Value, replacements: &HashM... FILE: libs/workspace-template/src/document/parser.rs type JsonToDocumentParser (line 10) | pub struct JsonToDocumentParser; method serde_block_to_document (line 15) | pub fn serde_block_to_document(root: SerdeBlock) -> Result Result { method json_to_document (line 42) | pub fn json_to_document(json_value: serde_json::Value) -> Result) -> HashMap) -> Hash... method block_to_block_pb (line 102) | fn block_to_block_pb( constant DELTA (line 12) | const DELTA: &str = "delta"; constant TEXT_EXTERNAL_TYPE (line 13) | const TEXT_EXTERNAL_TYPE: &str = "text"; type SerdeBlock (line 131) | pub struct SerdeBlock { FILE: libs/workspace-template/src/document/util.rs function create_document_from_json (line 11) | pub async fn create_document_from_json( function create_database_from_params (line 39) | pub async fn create_database_from_params( FILE: libs/workspace-template/src/document/vault_template.rs type VaultTemplate (line 10) | pub struct VaultTemplate; method create_generate (line 13) | async fn create_generate(&self, general_view_uuid: String) -> anyhow::... method create_vault_get_started (line 21) | async fn create_vault_get_started(&self, object_id: String) -> anyhow:... method build_getting_started_view (line 30) | async fn build_getting_started_view( method layout (line 46) | fn layout(&self) -> ViewLayout { method create (line 50) | async fn create(&self, _object_id: String) -> anyhow::Result Self { method with_view_builder (line 24) | pub async fn with_view_builder(&mut self, view_builder: F) -> &m... method build (line 35) | pub fn build(&mut self) -> Vec { type ViewBuilder (line 42) | pub struct ViewBuilder { method new (line 55) | pub fn new(uid: i64, parent_view_id: String) -> Self { method view_id (line 69) | pub fn view_id(&self) -> &str { method with_view_id (line 73) | pub fn with_view_id(mut self, view_id: T) -> Self { method with_layout (line 78) | pub fn with_layout(mut self, layout: ViewLayout) -> Self { method with_name (line 83) | pub fn with_name(mut self, name: &str) -> Self { method with_icon (line 88) | pub fn with_icon(mut self, icon: &str) -> Self { method with_extra (line 96) | pub fn with_extra(mut self, extra: &str) -> Self { method with_child_view_builder (line 103) | pub async fn with_child_view_builder(mut self, child_view_builde... method build (line 113) | pub fn build(self) -> ParentChildViews { type ParentChildViews (line 144) | pub struct ParentChildViews { type FlattedViews (line 149) | pub struct FlattedViews; method flatten_views (line 152) | pub fn flatten_views(views: Vec) -> Vec { FILE: libs/workspace-template/src/lib.rs type WorkspaceTemplate (line 26) | pub trait WorkspaceTemplate { method layout (line 27) | fn layout(&self) -> ViewLayout; method create (line 29) | async fn create(&self, object_id: String) -> Result>; method create_workspace_view (line 31) | async fn create_workspace_view( type TemplateObjectId (line 39) | pub enum TemplateObjectId { type TemplateData (line 50) | pub struct TemplateData { type WorkspaceTemplateHandlers (line 56) | pub type WorkspaceTemplateHandlers = HashMap Self { method with_template (line 76) | pub fn with_template(mut self, template: T) -> Self method with_templates (line 84) | pub fn with_templates(mut self, templates: Vec) -> Self method build (line 94) | pub async fn build(&self) -> Result> { function gen_view_id (line 168) | pub fn gen_view_id() -> Uuid { FILE: libs/workspace-template/src/tests/getting_started_tests.rs function create_document_from_desktop_guide_json_test (line 22) | async fn create_document_from_desktop_guide_json_test() { function create_document_from_mobile_guide_json_test (line 28) | async fn create_document_from_mobile_guide_json_test() { function create_document_from_getting_started_json_test (line 34) | async fn create_document_from_getting_started_json_test() { function create_database_from_todos_json_test (line 40) | async fn create_database_from_todos_json_test() { function test_document_json (line 47) | async fn test_document_json(json_str: &str) { function test_database_json (line 64) | async fn test_database_json(json_str: &str) -> Vec { function create_workspace_view_with_getting_started_template_test (line 90) | async fn create_workspace_view_with_getting_started_template_test() { function replace_json_placeholders_test (line 126) | fn replace_json_placeholders_test() { FILE: migrations/20230312043024_user.sql type af_user (line 5) | CREATE TABLE IF NOT EXISTS af_user ( function update_updated_at_column_func (line 17) | CREATE OR REPLACE FUNCTION update_updated_at_column_func() RETURNS TRIGG... function prevent_reset_encryption_sign_func (line 23) | CREATE OR REPLACE FUNCTION prevent_reset_encryption_sign_func() RETURNS ... FILE: migrations/20230906101032_permission.sql type af_roles (line 2) | CREATE TABLE IF NOT EXISTS af_roles ( type af_permissions (line 11) | CREATE TABLE af_permissions ( type af_role_permissions (line 36) | CREATE TABLE af_role_permissions ( FILE: migrations/20230906101223_workspace.sql type af_workspace (line 2) | CREATE TABLE IF NOT EXISTS af_workspace ( type af_workspace_member (line 14) | CREATE TABLE IF NOT EXISTS af_workspace_member ( function notify_af_workspace_member_change (line 24) | CREATE OR REPLACE FUNCTION notify_af_workspace_member_change() RETURNS t... type idx_af_workspace_member (line 49) | CREATE UNIQUE INDEX IF NOT EXISTS idx_af_workspace_member ON af_workspac... function insert_af_workspace_member_if_owner (line 51) | CREATE OR REPLACE FUNCTION insert_af_workspace_member_if_owner( FILE: migrations/20230906101555_user_profile.sql type af_user_profile_view (line 5) | CREATE OR REPLACE VIEW af_user_profile_view AS FILE: migrations/20230906102652_collab.sql type af_collab (line 2) | CREATE TABLE IF NOT EXISTS af_collab ( FILE: migrations/20230926145155_blob_storage.sql type af_blob_metadata (line 1) | CREATE TABLE IF NOT EXISTS af_blob_metadata ( FILE: migrations/20231113074418_user_change.sql function notify_af_user_change (line 6) | CREATE OR REPLACE FUNCTION notify_af_user_change() RETURNS TRIGGER AS $$ FILE: migrations/20240123140707_workspace_owner_trigger.sql function af_workspace_insert_trigger (line 1) | CREATE OR REPLACE FUNCTION af_workspace_insert_trigger() FILE: migrations/20240304173938_workspace_invitation.sql type af_workspace_invitation (line 1) | CREATE TABLE IF NOT EXISTS af_workspace_invitation ( type idx_af_workspace_invitation_inviter (line 12) | CREATE INDEX idx_af_workspace_invitation_inviter ON af_workspace_invitat... type idx_af_workspace_invitation_invitee (line 13) | CREATE INDEX idx_af_workspace_invitation_invitee ON af_workspace_invitat... function update_af_workspace_invitation_updated_at_column (line 16) | CREATE OR REPLACE FUNCTION update_af_workspace_invitation_updated_at_col... function add_to_af_workspace_member (line 33) | CREATE OR REPLACE FUNCTION add_to_af_workspace_member() FILE: migrations/20240306110000_workspace_invitation_2.sql function add_to_af_workspace_member (line 4) | CREATE OR REPLACE FUNCTION add_to_af_workspace_member() FILE: migrations/20240412083446_history_init.sql type af_snapshot_meta (line 4) | CREATE TABLE IF NOT EXISTS af_snapshot_meta( type af_snapshot_state (line 28) | CREATE TABLE IF NOT EXISTS af_snapshot_state( type idx_snapshot_state_oid_created (line 53) | CREATE INDEX IF NOT EXISTS idx_snapshot_state_oid_created ON af_snapshot... FILE: migrations/20240510024506_chat_message.sql type af_chat (line 3) | CREATE TABLE af_chat type af_chat_messages (line 15) | CREATE TABLE af_chat_messages type idx_chat_messages_chat_id_created_at (line 27) | CREATE INDEX idx_chat_messages_chat_id_created_at ON af_chat_messages (m... FILE: migrations/20240613112820_publish_collab.sql type af_published_collab (line 2) | CREATE TABLE IF NOT EXISTS af_published_collab ( function update_updated_at (line 15) | CREATE OR REPLACE FUNCTION update_updated_at() type publish_namespace_idx (line 30) | CREATE INDEX IF NOT EXISTS publish_namespace_idx ON af_workspace(publish... FILE: migrations/20240614171931_collab_embeddings.sql type af_collab_embeddings (line 7) | CREATE TABLE IF NOT EXISTS af_collab_embeddings type af_collab_embeddings_similarity_idx (line 19) | CREATE INDEX IF NOT EXISTS af_collab_embeddings_similarity_idx ON af_col... FILE: migrations/20240617135926_af_workspace_foreign_key_indices.sql type idx_workspace_id_on_af_blob_metadata (line 1) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_blob_metadata ... type idx_workspace_id_on_af_chat (line 2) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_chat ... type idx_workspace_id_on_af_collab_snapshot (line 3) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_collab_snapshot ... type idx_workspace_id_on_af_collab (line 4) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_collab ... type idx_workspace_id_on_af_snapshot_meta (line 5) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_snapshot_meta ... type idx_workspace_id_on_af_snapshot_state (line 6) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_snapshot_state ... type idx_workspace_id_on_af_workspace_member (line 7) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_workspace_member ... FILE: migrations/20240618035048_af_workspace_ai_usage.sql type af_workspace_ai_usage (line 1) | CREATE TABLE IF NOT EXISTS af_workspace_ai_usage ( FILE: migrations/20240618173348_publish_collab_2.sql type idx_workspace_id_on_af_published_collab (line 5) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_published_collab ON af... type idx_published_by_on_af_published_collab (line 6) | CREATE INDEX IF NOT EXISTS idx_published_by_on_af_published_collab ON af... FILE: migrations/20240626184736_publish_collab_4.sql type idx_publish_name (line 6) | CREATE INDEX idx_publish_name ON public.af_published_collab (publish_name) FILE: migrations/20240723090305_publish_view_comment.sql type af_published_view_comment (line 2) | CREATE TABLE IF NOT EXISTS af_published_view_comment ( type idx_view_id_on_af_published_view_comment (line 20) | CREATE INDEX IF NOT EXISTS idx_view_id_on_af_published_view_comment ON a... FILE: migrations/20240725065111_publish_view_reaction.sql type af_published_view_reaction (line 2) | CREATE TABLE IF NOT EXISTS af_published_view_reaction ( type idx_view_id_on_af_published_view_reaction (line 9) | CREATE INDEX IF NOT EXISTS idx_view_id_on_af_published_view_reaction ON ... FILE: migrations/20240806054557_template_category.sql type af_template_category (line 1) | CREATE TABLE IF NOT EXISTS af_template_category ( FILE: migrations/20240806103039_template_creator.sql type af_template_creator (line 1) | CREATE TABLE IF NOT EXISTS af_template_creator ( type af_template_creator_account_link (line 11) | CREATE TABLE IF NOT EXISTS af_template_creator_account_link ( FILE: migrations/20240813040905_template.sql type af_template_view (line 3) | CREATE TABLE IF NOT EXISTS af_template_view ( type af_template_view_template_category (line 18) | CREATE TABLE IF NOT EXISTS af_template_view_template_category ( type af_related_template_view (line 25) | CREATE TABLE IF NOT EXISTS af_related_template_view ( FILE: migrations/20240910100000_af_collab_embeddings_indices.sql type af_collab_embeddings_oid_idx (line 3) | CREATE INDEX IF NOT EXISTS af_collab_embeddings_oid_idx ON public.af_col... FILE: migrations/20240924045045_access_request.sql type af_access_request (line 1) | CREATE TABLE IF NOT EXISTS af_access_request ( type idx_workspace_id_on_af_access_request (line 12) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_access_request ON af_a... type idx_uid_on_af_access_request (line 13) | CREATE INDEX IF NOT EXISTS idx_uid_on_af_access_request ON af_access_req... FILE: migrations/20240930135712_import_data.sql type af_import_task (line 2) | CREATE TABLE af_import_task( type idx_af_import_task_status_created_at (line 12) | CREATE INDEX idx_af_import_task_status_created_at type idx_af_workspace_is_initialized (line 20) | CREATE INDEX idx_af_workspace_is_initialized FILE: migrations/20241025135939_import_task_add_uid_column.sql type idx_af_import_task_uid_status_created_at (line 9) | CREATE INDEX idx_af_import_task_uid_status_created_at FILE: migrations/20241031094508_af_uuid_indexes.sql type uq_af_user_uuid (line 1) | CREATE UNIQUE INDEX IF NOT EXISTS uq_af_user_uuid FILE: migrations/20241101063559_af_workspace_namespace.sql type af_workspace_namespace (line 9) | CREATE TABLE IF NOT EXISTS af_workspace_namespace ( type idx_af_workspace_namespace_workspace_id (line 20) | CREATE INDEX idx_af_workspace_namespace_workspace_id ON af_workspace_nam... type af_workspace_namespace (line 23) | CREATE UNIQUE INDEX ON af_workspace_namespace (workspace_id) function update_updated_at_column (line 27) | CREATE OR REPLACE FUNCTION update_updated_at_column() function create_workspace_namespace (line 42) | CREATE OR REPLACE FUNCTION create_workspace_namespace() FILE: migrations/20241124212630_af_collab_updated_at.sql function update_updated_at_column (line 6) | CREATE OR REPLACE FUNCTION update_updated_at_column() type idx_af_collab_updated_at (line 21) | CREATE INDEX idx_af_collab_updated_at FILE: migrations/20241216080018_quick_notes.sql type af_quick_note (line 1) | CREATE TABLE IF NOT EXISTS af_quick_note ( type idx_workspace_id_on_af_quick_note (line 15) | CREATE INDEX IF NOT EXISTS idx_workspace_id_on_af_quick_note ON af_quick... type idx_uid_on_af_quick_note (line 17) | CREATE INDEX IF NOT EXISTS idx_uid_on_af_quick_note ON af_quick_note (uid) FILE: migrations/20250217080054_drop_collab_member_trigger.sql function add_to_af_workspace_member (line 1) | CREATE OR REPLACE FUNCTION add_to_af_workspace_member() FILE: migrations/20250305082546_workspace_delete_trigger.sql type af_workspace_deleted (line 3) | CREATE TABLE IF NOT EXISTS af_workspace_deleted ( function workspace_deleted_trigger_function (line 9) | CREATE OR REPLACE FUNCTION workspace_deleted_trigger_function() function notify_user_deletion (line 32) | CREATE OR REPLACE FUNCTION notify_user_deletion() FILE: migrations/20250318120849_departition_af_collab.sql type af_collab_temp (line 4) | create table af_collab_temp type af_collab_conflicts (line 19) | create table af_collab_conflicts type ix_af_collab_embeddings_oid (line 57) | create index if not exists ix_af_collab_embeddings_oid type idx_workspace_id_on_af_collab (line 74) | create index if not exists idx_workspace_id_on_af_collab type idx_af_collab_updated_at (line 76) | create index if not exists idx_af_collab_updated_at FILE: migrations/20250403021559_workspace_invite_code.sql type af_workspace_invite_code (line 1) | CREATE TABLE IF NOT EXISTS af_workspace_invite_code ( type idx_af_workspace_invite_code (line 8) | CREATE INDEX idx_af_workspace_invite_code ON af_workspace_invite_code (i... FILE: migrations/20250703030740_workspace_member_profile.sql type af_workspace_member_profile (line 1) | CREATE TABLE IF NOT EXISTS af_workspace_member_profile ( FILE: migrations/20250714060306_page_mention.sql type af_page_mention (line 1) | CREATE TABLE IF NOT EXISTS af_page_mention ( FILE: services/appflowy-collaborate/src/actix_ws/client/rt_client.rs type HandlerResult (line 27) | pub type HandlerResult = anyhow::Result<(), RealtimeError>; type RealtimeServer (line 28) | pub trait RealtimeServer: type BinaryRateLimiter (line 36) | type BinaryRateLimiter = RateLimiter { function new (line 57) | pub fn new( function hb (line 79) | fn hb(&self, ctx: &mut ws::WebsocketContext) { function try_send (line 98) | pub fn try_send(&self, message: RealtimeMessage) -> Result<(), RealtimeE... function handle_binary (line 118) | fn handle_binary(&mut self, ctx: &mut WebsocketContext... function handle_ping (line 173) | fn handle_ping(&mut self, ctx: &mut WebsocketContext>,... function handle_close (line 178) | fn handle_close( type Context (line 193) | type Context = ws::WebsocketContext; method started (line 195) | fn started(&mut self, ctx: &mut Self::Context) { method stopping (line 257) | fn stopping(&mut self, _ctx: &mut Self::Context) -> Running { type Result (line 272) | type Result = (); function handle (line 274) | fn handle(&mut self, message: RealtimeMessage, ctx: &mut Self::Context) { function handle (line 295) | fn handle(&mut self, msg: Result, ctx: &... type RealtimeClientWebsocketSinkImpl (line 316) | pub struct RealtimeClientWebsocketSinkImpl(pub Recipient); method do_send (line 320) | fn do_send(&self, message: RealtimeMessage) { function gen_rate_limiter (line 325) | fn gen_rate_limiter( function rate_limit_test (line 341) | async fn rate_limit_test() { FILE: services/appflowy-collaborate/src/actix_ws/entities.rs type Connect (line 15) | pub struct Connect { type Disconnect (line 22) | pub struct Disconnect { type DisconnectByServer (line 28) | pub struct DisconnectByServer; type BusinessID (line 31) | pub enum BusinessID { type ClientWebSocketMessage (line 37) | pub struct ClientWebSocketMessage { type ClientHttpStreamMessage (line 44) | pub struct ClientHttpStreamMessage { type ClientHttpUpdateMessage (line 52) | pub struct ClientHttpUpdateMessage { type ClientGenerateEmbeddingMessage (line 69) | pub struct ClientGenerateEmbeddingMessage { FILE: services/appflowy-collaborate/src/actix_ws/server/rt_actor.rs type RealtimeServerActor (line 18) | pub struct RealtimeServerActor(pub CollaborationServer); method restarting (line 43) | fn restarting(&mut self, ctx: &mut Context) { type Result (line 60) | type Result = anyhow::Result<(), RealtimeError>; method handle (line 62) | fn handle(&mut self, new_conn: Connect, _ctx: &mut Context) -> S... type Result (line 74) | type Result = anyhow::Result<(), RealtimeError>; method handle (line 75) | fn handle(&mut self, msg: Disconnect, _: &mut Context) -> Self::... type Result (line 81) | type Result = anyhow::Result<(), RealtimeError>; method handle (line 83) | fn handle( type Result (line 102) | type Result = anyhow::Result<(), RealtimeError>; method handle (line 104) | fn handle( type Result (line 135) | type Result = Result<(), AppError>; method handle (line 137) | fn handle(&mut self, msg: ClientHttpUpdateMessage, _ctx: &mut Self::Co... type Result (line 147) | type Result = Result<(), AppError>; method handle (line 149) | fn handle( type Target (line 23) | type Target = CollaborationServer; method deref (line 25) | fn deref(&self) -> &Self::Target { type Context (line 31) | type Context = Context; method started (line 33) | fn started(&mut self, ctx: &mut Self::Context) { function mail_box_size (line 49) | fn mail_box_size() -> usize { FILE: services/appflowy-collaborate/src/client/client_msg_router.rs type RealtimeClientWebsocketSink (line 17) | pub trait RealtimeClientWebsocketSink: Send + Sync + 'static { method do_send (line 18) | fn do_send(&self, message: RealtimeMessage); type ClientMessageRouter (line 27) | pub struct ClientMessageRouter { method new (line 38) | pub fn new(sink: impl RealtimeClientWebsocketSink) -> Self { method init_client_communication (line 56) | pub fn init_client_communication( method send_message (line 149) | pub async fn send_message(&self, message: RealtimeMessage) { method access_control (line 154) | async fn access_control( FILE: services/appflowy-collaborate/src/collab/cache/collab_cache.rs type CollabCache (line 35) | pub struct CollabCache { method new (line 49) | pub fn new( method mark_as_dirty (line 85) | pub fn mark_as_dirty(&self, object_id: Uuid, millis_secs: MillisSecond... method is_dirty_since (line 110) | pub fn is_dirty_since(&self, object_id: &Uuid, millis_seconds: MillisS... method metrics (line 131) | pub fn metrics(&self) -> &CollabMetrics { method bulk_insert_collab (line 138) | pub async fn bulk_insert_collab( method get_snapshot_collab (line 220) | pub async fn get_snapshot_collab( method get_full_collab (line 255) | pub async fn get_full_collab( method get_collabs_created_since (line 364) | pub async fn get_collabs_created_since( method get_workspace_updates (line 376) | pub async fn get_workspace_updates( method batch_get_snapshot_collab (line 394) | pub async fn batch_get_snapshot_collab>( method process_query_batch (line 438) | async fn process_query_batch( method batch_get_full_collab (line 514) | pub async fn batch_get_full_collab>( method insert_encode_collab_data (line 592) | pub async fn insert_encode_collab_data( method cache_collab (line 626) | async fn cache_collab( method insert_encode_collab_to_disk (line 649) | pub async fn insert_encode_collab_to_disk( method delete_collab (line 678) | pub async fn delete_collab(&self, workspace_id: &Uuid, object_id: &Uui... method is_exist (line 687) | pub async fn is_exist(&self, workspace_id: &Uuid, oid: &Uuid) -> Resul... method batch_insert_collab (line 699) | pub async fn batch_insert_collab( method encode_diff_for_large_collab (line 732) | fn encode_diff_for_large_collab( function replaying_updates (line 764) | fn replaying_updates( FILE: services/appflowy-collaborate/src/collab/cache/disk_cache.rs type CollabDiskCache (line 32) | pub struct CollabDiskCache { method new (line 41) | pub fn new( method is_exist (line 57) | pub async fn is_exist(&self, workspace_id: &Uuid, object_id: &Uuid) ->... method upsert_collab (line 68) | pub async fn upsert_collab( method s3_client (line 106) | pub fn s3_client(&self) -> AwsS3BucketClientImpl { method upsert_collab_with_transaction (line 110) | pub async fn upsert_collab_with_transaction( method get_collabs_created_since (line 142) | pub async fn get_collabs_created_since( method get_collab_from_s3 (line 230) | async fn get_collab_from_s3( method get_encoded_collab_from_disk (line 258) | pub async fn get_encoded_collab_from_disk( method bulk_insert_collab (line 330) | pub async fn bulk_insert_collab( method batch_insert_collab (line 375) | pub async fn batch_insert_collab( method batch_get_collab (line 446) | pub async fn batch_get_collab( method delete_collab (line 502) | pub async fn delete_collab(&self, workspace_id: &Uuid, object_id: &Uui... method is_collab_deleted (line 523) | pub async fn is_collab_deleted(&self, object_id: &Uuid) -> AppResult Result String { function collab_key (line 726) | fn collab_key(workspace_id: &Uuid, object_id: &Uuid) -> String { FILE: services/appflowy-collaborate/src/collab/cache/mem_cache.rs constant SEVEN_DAYS (line 23) | const SEVEN_DAYS: u64 = 604800; constant ONE_MONTH (line 24) | const ONE_MONTH: u64 = 2592000; constant ENCODE_SPAWN_THRESHOLD (line 29) | const ENCODE_SPAWN_THRESHOLD: usize = 4096; type MillisSeconds (line 32) | pub struct MillisSeconds(pub u64); method from (line 41) | fn from(rid: &Rid) -> Self { method from (line 47) | fn from(value: u64) -> Self { method now (line 53) | pub fn now() -> Self { method into_inner (line 57) | pub fn into_inner(self) -> u64 { method fmt (line 35) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type CollabMemCache (line 62) | pub struct CollabMemCache { method new (line 73) | pub fn new( method is_exist (line 90) | pub async fn is_exist(&self, object_id: &Uuid) -> Result Result<(... method get_encode_collab (line 118) | pub async fn get_encode_collab(&self, object_id: &Uuid) -> Option<(Rid... method batch_get_data (line 135) | pub async fn batch_get_data( method batch_get_encode_collab (line 196) | pub async fn batch_get_encode_collab(&self, object_ids: &[Uuid]) -> Ve... method get_workspace_updates (line 249) | pub async fn get_workspace_updates( method insert_encode_collab (line 285) | pub async fn insert_encode_collab( method insert_encode_collab_data (line 330) | pub async fn insert_encode_collab_data( method batch_insert_raw_data (line 347) | pub async fn batch_insert_raw_data( method insert_data_with_timestamp (line 408) | async fn insert_data_with_timestamp( method _insert_data_with_timestamp (line 440) | async fn _insert_data_with_timestamp( method get_data_with_timestamp (line 509) | pub async fn get_data_with_timestamp( method extract_timestamp_and_payload (line 540) | fn extract_timestamp_and_payload(data: &[u8]) -> redis::RedisResult<(u... method extract_timestamp_and_payload_with_metrics (line 569) | fn extract_timestamp_and_payload_with_metrics( method extract_and_decode_collab (line 590) | fn extract_and_decode_collab( function encode_collab_key (line 617) | fn encode_collab_key(object_id: &Uuid) -> String { function cache_exp_secs_from_collab_type (line 625) | pub fn cache_exp_secs_from_collab_type(collab_type: &CollabType) -> u64 { FILE: services/appflowy-collaborate/src/collab/cache/mod.rs constant DECODE_SPAWN_THRESHOLD (line 13) | pub const DECODE_SPAWN_THRESHOLD: usize = 4096; function encode_collab_from_bytes (line 16) | pub(crate) fn encode_collab_from_bytes(bytes: Vec) -> Result &StreamRouter { method awareness (line 79) | pub fn awareness(&self) -> &AwarenessGossip { method prune_updates (line 83) | async fn prune_updates(&self, workspace_id: WorkspaceId, up_to: Rid) -... method build_folder (line 92) | pub async fn build_folder(&self, workspace_id: WorkspaceId) -> AppResu... method get_snapshot (line 119) | async fn get_snapshot( method enforce_read_collab (line 136) | pub async fn enforce_read_collab( method enforce_write_collab (line 154) | pub async fn enforce_write_collab( method get_collabs_created_since (line 172) | pub async fn get_collabs_created_since( method get_latest_state (line 186) | pub async fn get_latest_state( method get_workspace_updates (line 227) | pub async fn get_workspace_updates( method publish_update (line 239) | pub async fn publish_update( method mark_as_dirty (line 280) | pub fn mark_as_dirty(&self, object_id: ObjectId, millis_secs: u64) { method publish_awareness_update (line 287) | pub async fn publish_awareness_update( method snapshot_workspace (line 315) | pub async fn snapshot_workspace( method acquire_workspace_lock (line 391) | async fn acquire_workspace_lock( method collect_snapshot_tasks (line 411) | async fn collect_snapshot_tasks( method process_snapshot_tasks (line 450) | fn process_snapshot_tasks( method encode_and_save_snapshots (line 495) | async fn encode_and_save_snapshots( method encode_collab_chunk (line 532) | fn encode_collab_chunk(&self, chunk: &[ProcessedSnapshot]) -> anyhow::... method batch_insert_by_user (line 609) | async fn batch_insert_by_user( method batch_index_collabs (line 638) | fn batch_index_collabs( type CollabState (line 659) | pub struct CollabState { function apply_updates_to_snapshot (line 666) | fn apply_updates_to_snapshot( function decode_update (line 721) | pub fn decode_update(update: &[u8]) -> AppResult { type SnapshotTask (line 741) | struct SnapshotTask { type ProcessedSnapshot (line 751) | struct ProcessedSnapshot { type EncodedChunkResult (line 761) | struct EncodedChunkResult { FILE: services/appflowy-collaborate/src/collab/collab_store.rs type CollabStoreImpl (line 43) | pub struct CollabStoreImpl { method new (line 52) | pub fn new( method check_or_update_permission (line 67) | async fn check_or_update_permission( method metrics (line 99) | pub fn metrics(&self) -> &CollabMetrics { constant PENDING_WRITE_BUF_CAPACITY (line 103) | const PENDING_WRITE_BUF_CAPACITY: usize = 20; method periodic_write_task (line 104) | async fn periodic_write_task(cache: Arc, mut reader: Rece... method check_write_workspace_permission (line 121) | async fn check_write_workspace_permission( method batch_insert_collabs (line 137) | async fn batch_insert_collabs( method upsert_collab (line 152) | async fn upsert_collab( method upsert_collab_background (line 168) | async fn upsert_collab_background( method upsert_new_collab_with_transaction (line 206) | async fn upsert_new_collab_with_transaction( method batch_insert_new_collab (line 243) | async fn batch_insert_new_collab( method get_full_encode_collab (line 275) | async fn get_full_encode_collab( method batch_get_collab (line 309) | async fn batch_get_collab( method delete_collab (line 324) | async fn delete_collab(&self, workspace_id: &Uuid, uid: &i64, object_id:... method mark_as_editing (line 334) | fn mark_as_editing(&self, oid: Uuid) { FILE: services/appflowy-collaborate/src/collab/snapshot_scheduler.rs type SnapshotScheduler (line 11) | pub struct SnapshotScheduler { constant CONCURRENCY_LIMIT (line 17) | const CONCURRENCY_LIMIT: usize = 10; method new (line 18) | pub fn new(collab_store: Arc) -> Self { method schedule_snapshot (line 24) | pub fn schedule_snapshot(&self, workspace_id: Uuid, last_message_id: R... method get_workspaces (line 29) | async fn get_workspaces( method drain_snapshot_tasks (line 51) | async fn drain_snapshot_tasks(tasks: &mut JoinSet<()>) { method snapshot_task (line 59) | async fn snapshot_task( FILE: services/appflowy-collaborate/src/compression.rs constant X_COMPRESSION_TYPE (line 5) | pub const X_COMPRESSION_TYPE: &str = "X-Compression-Type"; constant X_COMPRESSION_BUFFER_SIZE (line 7) | pub const X_COMPRESSION_BUFFER_SIZE: &str = "X-Compression-Buffer-Size"; type CompressionType (line 8) | pub enum CompressionType { function decompress (line 12) | pub async fn decompress(data: Vec, buffer_size: usize) -> Result &'static str { type Err (line 58) | type Err = anyhow::Error; method from_str (line 60) | fn from_str(s: &str) -> Result { type AISettings (line 73) | pub struct AISettings { method url (line 79) | pub fn url(&self) -> String { type WebsocketSetting (line 85) | pub struct WebsocketSetting { type DatabaseSetting (line 92) | pub struct DatabaseSetting { method pg_connect_options (line 113) | pub fn pg_connect_options(&self) -> PgConnectOptions { method fmt (line 103) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type GoTrueSetting (line 125) | pub struct GoTrueSetting { type CollabSetting (line 130) | pub struct CollabSetting { function get_env_var (line 138) | pub fn get_env_var(key: &str, default: &str) -> String { function get_configuration (line 156) | pub fn get_configuration() -> Result { FILE: services/appflowy-collaborate/src/connect_state.rs type ConnectState (line 12) | pub struct ConnectState { method new (line 21) | pub fn new() -> Self { method get_user_by_device (line 25) | pub fn get_user_by_device(&self, device: &UserDevice) -> Option usize { type MockSink (line 130) | struct MockSink; method do_send (line 133) | fn do_send(&self, _message: RealtimeMessage) {} function mock_user (line 136) | fn mock_user(uid: i64, device_id: &str, connect_at: i64) -> RealtimeUser { function mock_stream (line 146) | fn mock_stream() -> ClientMessageRouter { function same_user_different_device_connect_test (line 151) | async fn same_user_different_device_connect_test() { function same_user_same_device_connect_test (line 162) | async fn same_user_same_device_connect_test() { function multiple_same_devices_connect_test (line 177) | async fn multiple_same_devices_connect_test() { function multiple_same_devices_connect_disconnect_test (line 201) | async fn multiple_same_devices_connect_disconnect_test() { function multiple_devices_connect_test (line 232) | async fn multiple_devices_connect_test() { FILE: services/appflowy-collaborate/src/error.rs type RealtimeError (line 6) | pub enum RealtimeError { method is_too_many_message (line 113) | pub fn is_too_many_message(&self) -> bool { method is_lock_timeout (line 117) | pub fn is_lock_timeout(&self) -> bool { method is_create_group_failed (line 120) | pub fn is_create_group_failed(&self) -> bool { type CreateGroupFailedReason (line 90) | pub enum CreateGroupFailedReason { method fmt (line 96) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { FILE: services/appflowy-collaborate/src/group/cmd.rs type GroupCommand (line 29) | pub enum GroupCommand { type GroupCommandSender (line 54) | pub type GroupCommandSender = tokio::sync::mpsc::Sender; type GroupCommandReceiver (line 55) | pub type GroupCommandReceiver = tokio::sync::mpsc::Receiver; type GroupCommandRunner (line 61) | pub struct GroupCommandRunner { method run (line 68) | pub async fn run(mut self, object_id: Uuid) { method handle_client_collab_message (line 148) | async fn handle_client_collab_message( method handle_client_posted_http_update (line 217) | async fn handle_client_posted_http_update( method subscribe_group_with_message (line 270) | async fn subscribe_group_with_message( method subscribe_group (line 280) | async fn subscribe_group( method create_group_with_message (line 306) | async fn create_group_with_message( method create_group (line 325) | async fn create_group( function forward_message_to_group (line 344) | pub async fn forward_message_to_group( FILE: services/appflowy-collaborate/src/group/group_init.rs type CollabGroup (line 49) | pub struct CollabGroup { method new (line 82) | pub async fn new( method workspace_id (line 162) | pub fn workspace_id(&self) -> &Uuid { method object_id (line 168) | pub fn object_id(&self) -> &Uuid { method is_cancelled (line 172) | pub fn is_cancelled(&self) -> bool { method inbound_task (line 177) | async fn inbound_task(state: Arc) -> Result<(), Real... method handle_inbound_update (line 211) | async fn handle_inbound_update(state: &CollabGroupState, update: Colla... method inbound_awareness_task (line 268) | async fn inbound_awareness_task(state: Arc) -> Resul... method handle_inbound_awareness (line 295) | async fn handle_inbound_awareness(state: &CollabGroupState, update: &A... method snapshot_task (line 322) | async fn snapshot_task(state: Arc, interval: Duratio... method calculate_missing_update (line 355) | pub async fn calculate_missing_update( method generate_embeddings (line 377) | pub async fn generate_embeddings(&self) -> Result<(), AppError> { method encode_collab (line 397) | pub async fn encode_collab(&self) -> Result bool { method remove_user (line 413) | pub fn remove_user(&self, user: &RealtimeUser) { method user_count (line 423) | pub fn user_count(&self) -> usize { method modified_at (line 427) | pub fn modified_at(&self) -> Instant { method subscribe (line 433) | pub fn subscribe( method receive_from_client_task (line 480) | async fn receive_from_client_task( method handle_messages (line 512) | async fn handle_messages( method handle_client_message (line 552) | async fn handle_client_message( method handle_message (line 590) | async fn handle_message( method handle_protocol_message (line 655) | async fn handle_protocol_message( method handle_sync_step1 (line 673) | async fn handle_sync_step1( method handle_sync_step2 (line 741) | async fn handle_sync_step2( method handle_update (line 841) | async fn handle_update( method handle_awareness_update (line 849) | async fn handle_awareness_update( method ack_code_from_error (line 865) | fn ack_code_from_error(error: &RTProtocolError) -> AckCode { method is_inactive (line 877) | pub fn is_inactive(&self) -> bool { type CollabGroupState (line 55) | struct CollabGroupState { method drop (line 74) | fn drop(&mut self) { type SubscriptionSink (line 900) | pub trait SubscriptionSink: type SubscriptionStream (line 909) | pub trait SubscriptionStream: Stream + Send + ... type Subscription (line 912) | struct Subscription { method new (line 919) | fn new(sink: S, collab_origin: CollabOrigin, shutdown: Cancellation... method drop (line 932) | fn drop(&mut self) { type CollabPersister (line 938) | struct CollabPersister { method new (line 953) | pub async fn new( method send_update (line 983) | async fn send_update( method send_awareness (line 1003) | async fn send_awareness( method load_compact (line 1018) | async fn load_compact(&self) -> Result { method load_if_changed (line 1073) | async fn load_if_changed(&self) -> Result, Real... method save (line 1136) | async fn save(&self) -> Result<(), RealtimeError> { method save_attempt (line 1154) | async fn save_attempt(&self, snapshot: CollabSnapshot) -> Result<(), R... method write_collab (line 1210) | async fn write_collab( method index_collab_content (line 1239) | fn index_collab_content(&self, paragraphs: Vec) { method load_collab_full (line 1258) | async fn load_collab_full(&self) -> Result, Real... type CollabSnapshot (line 1284) | pub struct CollabSnapshot { FILE: services/appflowy-collaborate/src/group/manager.rs type GroupManager (line 24) | pub struct GroupManager { method new (line 36) | pub async fn new( method get_inactive_groups (line 56) | pub fn get_inactive_groups(&self) -> Vec { method contains_user (line 60) | pub fn contains_user(&self, object_id: &Uuid, user: &RealtimeUser) -> ... method remove_user (line 64) | pub fn remove_user(&self, user: &RealtimeUser) { method contains_group (line 68) | pub fn contains_group(&self, object_id: &Uuid) -> bool { method get_group (line 72) | pub async fn get_group(&self, object_id: &Uuid) -> Option { method default (line 17) | fn default() -> Self { type Error (line 25) | type Error = RealtimeError; function poll_ready (line 28) | fn poll_ready(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll, _: T) -> Result<(), Self::Error> { function poll_flush (line 38) | fn poll_flush(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll, _: &mut Context<'_>) -> Poll) -> Se... method remove_inactive_groups (line 40) | pub fn remove_inactive_groups(&self) -> Vec { method get_group (line 60) | pub async fn get_group(&self, object_id: &Uuid) -> Option bool { method remove_group (line 125) | pub(crate) fn remove_group(&self, object_id: &Uuid) { method insert_user (line 137) | pub(crate) fn insert_user( method remove_user (line 156) | pub(crate) fn remove_user(&self, user: &RealtimeUser) { method contains_user (line 188) | pub fn contains_user(&self, object_id: &Uuid, user: &RealtimeUser) -> ... type Editing (line 201) | struct Editing { FILE: services/appflowy-collaborate/src/metrics.rs type CollabRealtimeMetrics (line 8) | pub struct CollabRealtimeMetrics { method new (line 31) | fn new() -> Self { method register (line 72) | pub fn register(registry: &mut Registry) -> Self { method observe_collab_stream_latency (line 133) | pub fn observe_collab_stream_latency(&self, message_id_timestamp: u64) { type CollabMetrics (line 144) | pub struct CollabMetrics { method register (line 163) | pub fn register(registry: &mut Registry) -> Self { method observe_pg_tx (line 235) | pub fn observe_pg_tx(&self, duration: std::time::Duration) { method observe_snapshot_duration (line 241) | pub fn observe_snapshot_duration(&self, duration: std::time::Duration) { method observe_snapshot_updates_count (line 245) | pub fn observe_snapshot_updates_count(&self, count: usize) { method default (line 251) | fn default() -> Self { FILE: services/appflowy-collaborate/src/permission.rs type CollabUserId (line 2) | pub enum CollabUserId<'a> { function from (line 8) | fn from(uid: &'a i64) -> Self { function from (line 14) | fn from(uid: &'a uuid::Uuid) -> Self { FILE: services/appflowy-collaborate/src/rt_server.rs type CollaborationServer (line 32) | pub struct CollaborationServer { method new (line 43) | pub async fn new( method handle_new_connection (line 90) | pub fn handle_new_connection( method handle_disconnect (line 118) | pub fn handle_disconnect(&self, disconnect_user: RealtimeUser) -> Resu... method handle_client_message (line 134) | pub fn handle_client_message( method handle_client_http_update (line 182) | pub fn handle_client_http_update( method create_group_if_not_exist (line 290) | fn create_group_if_not_exist(&self, object_id: Uuid) -> Sender Option Stri... function get_timestamp (line 37) | fn get_timestamp(object_key: &str) -> Option> { function get_meta (line 47) | fn get_meta(objct_key: String) -> Option { type SnapshotControl (line 63) | pub struct SnapshotControl { method new (line 70) | pub async fn new( method create_snapshot (line 82) | pub async fn create_snapshot(&self, params: InsertSnapshotParams) -> A... method get_collab_snapshot (line 127) | pub async fn get_collab_snapshot( method get_collab_snapshot_list (line 171) | pub async fn get_collab_snapshot_list( method get_snapshot (line 190) | pub async fn get_snapshot( FILE: services/appflowy-collaborate/src/util/channel_ext.rs type UnboundedSenderSink (line 8) | pub struct UnboundedSenderSink(pub tokio::sync::mpsc::UnboundedSender... function new (line 11) | pub fn new(tx: tokio::sync::mpsc::UnboundedSender) -> Self { type Error (line 20) | type Error = RealtimeError; function poll_ready (line 22) | fn poll_ready(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll, item: T) -> Result<(), Self::Error> { function poll_flush (line 32) | fn poll_flush(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll, _cx: &mut Context<'_>) -> Poll) -> Self { method init_workspace (line 39) | fn init_workspace( type Result (line 58) | type Result = (); method handle (line 60) | fn handle(&mut self, msg: Join, ctx: &mut Self::Context) -> Self::Resu... type Result (line 77) | type Result = (); method handle (line 79) | fn handle(&mut self, msg: Leave, _ctx: &mut Self::Context) -> Self::Re... type Result (line 87) | type Result = (); method handle (line 89) | fn handle(&mut self, msg: WsInput, ctx: &mut Self::Context) -> Self::R... type Result (line 105) | type Result = (); method handle (line 107) | fn handle(&mut self, msg: Terminate, _ctx: &mut Self::Context) -> Self... type Result (line 114) | type Result = (); method handle (line 116) | fn handle(&mut self, msg: PublishUpdate, ctx: &mut Self::Context) -> S... type Result (line 132) | type Result = (); method handle (line 134) | fn handle(&mut self, msg: WorkspaceFolder, ctx: &mut Self::Context) ->... type Context (line 54) | type Context = actix::Context; type Join (line 151) | pub struct Join { method fmt (line 164) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Leave (line 175) | pub struct Leave { type WsOutput (line 184) | pub struct WsOutput { type UpdateUserPermissions (line 190) | pub struct UpdateUserPermissions { type BroadcastPermissionChanges (line 197) | pub struct BroadcastPermissionChanges { type PublishUpdate (line 204) | pub struct PublishUpdate { type CollabUpdatePublisher (line 214) | pub trait CollabUpdatePublisher { method publish_update (line 215) | async fn publish_update( method publish_update (line 227) | async fn publish_update( type WorkspaceFolder (line 250) | pub struct WorkspaceFolder { type WorkspaceCollabInstanceCache (line 256) | pub trait WorkspaceCollabInstanceCache { method get_folder (line 257) | async fn get_folder(&self, workspace_id: WorkspaceId) -> AppResult AppResult Self { method next (line 297) | pub fn next(&self) -> &Arbiter { method default (line 275) | fn default() -> Self { FILE: services/appflowy-collaborate/src/ws2/actors/session.rs constant HEARTBEAT (line 20) | pub const HEARTBEAT: Duration = Duration::from_secs(5); constant CLIENT_TIMEOUT (line 21) | const CLIENT_TIMEOUT: Duration = Duration::from_secs(15); type SessionInfo (line 24) | pub struct SessionInfo { method new (line 32) | pub fn new( method collab_origin (line 46) | pub fn collab_origin(&self) -> CollabOrigin { type ExtraMessageReceiver (line 51) | pub type ExtraMessageReceiver = tokio::sync::mpsc::Receiver; type WsSession (line 52) | pub struct WsSession { method new (line 62) | pub fn new( method uid (line 78) | pub fn uid(&self) -> i64 { method id (line 83) | fn id(&self) -> ClientID { method hb (line 87) | fn hb(&self, ctx: &mut ws::WebsocketContext) { method handle_protocol (line 106) | fn handle_protocol(&mut self, bytes: Bytes, ctx: &mut ws::WebsocketCon... type Result (line 190) | type Result = (); method handle (line 192) | fn handle(&mut self, msg: WsOutput, ctx: &mut Self::Context) { type Result (line 205) | type Result = i64; method handle (line 207) | fn handle(&mut self, _msg: GetUid, _ctx: &mut Self::Context) -> Self::... method handle (line 213) | fn handle(&mut self, item: Result, ctx: &m... type Context (line 139) | type Context = ws::WebsocketContext; method started (line 141) | fn started(&mut self, ctx: &mut Self::Context) { method stopping (line 179) | fn stopping(&mut self, _ctx: &mut Self::Context) -> Running { type WsInput (line 274) | pub struct WsInput { type GetUid (line 284) | pub struct GetUid; type InputMessage (line 286) | pub enum InputMessage { type Error (line 293) | type Error = String; method try_from (line 295) | fn try_from(value: ClientMessage) -> Result { FILE: services/appflowy-collaborate/src/ws2/actors/workspace.rs type Workspace (line 31) | pub struct Workspace { constant SNAPSHOT_INTERVAL (line 46) | pub const SNAPSHOT_INTERVAL: Duration = Duration::from_secs(60); constant PERMISSION_CACHE_CLEANUP_INTERVAL (line 47) | pub const PERMISSION_CACHE_CLEANUP_INTERVAL: Duration = Duration::from... constant PUBLISH_COLLAB_LIMIT (line 48) | pub const PUBLISH_COLLAB_LIMIT: usize = 500; method new (line 50) | pub fn new( method publish_update (line 71) | async fn publish_update( method get_folder (line 88) | async fn get_folder(store: Arc, msg: WorkspaceFolder) { method hande_ws_input (line 94) | async fn hande_ws_input(store: Arc, sender: WorkspaceSe... method publish_collabs_created_since (line 222) | async fn publish_collabs_created_since( method schedule_terminate (line 328) | fn schedule_terminate(&mut self, ctx: &mut actix::Context) { method handle (line 395) | fn handle(&mut self, item: anyhow::Result, ctx: &... method handle (line 465) | fn handle( type Result (line 492) | type Result = (); method handle (line 494) | fn handle(&mut self, msg: Join, ctx: &mut Self::Context) -> Self::Resu... type Result (line 542) | type Result = (); method handle (line 544) | fn handle(&mut self, msg: Leave, ctx: &mut Self::Context) -> Self::Res... type Result (line 561) | type Result = (); method handle (line 563) | fn handle(&mut self, msg: Terminate, ctx: &mut Self::Context) -> Self:... type Result (line 571) | type Result = AtomicResponse; method handle (line 572) | fn handle(&mut self, msg: WsInput, _: &mut Self::Context) -> Self::Res... type Result (line 585) | type Result = AtomicResponse; method handle (line 586) | fn handle(&mut self, msg: PublishUpdate, ctx: &mut Self::Context) -> S... type Result (line 601) | type Result = ResponseActFuture; method handle (line 602) | fn handle(&mut self, msg: WorkspaceFolder, ctx: &mut Self::Context) ->... type Result (line 614) | type Result = ResponseActFuture; method handle (line 616) | fn handle(&mut self, _: Snapshot, _: &mut Self::Context) -> Self::Resu... type Result (line 638) | type Result = (); method handle (line 640) | fn handle(&mut self, _: CleanupPermissionCaches, ctx: &mut Self::Conte... type Result (line 679) | type Result = (); method handle (line 681) | fn handle(&mut self, msg: UpdateUserPermissions, _: &mut Self::Context... type Result (line 703) | type Result = (); method handle (line 705) | fn handle(&mut self, msg: BroadcastPermissionChanges, _: &mut Self::Co... type Context (line 343) | type Context = actix::Context; method started (line 345) | fn started(&mut self, ctx: &mut Self::Context) { method stopping (line 365) | fn stopping(&mut self, ctx: &mut Self::Context) -> Running { type Terminate (line 666) | pub struct Terminate { type Snapshot (line 672) | struct Snapshot; type CleanupPermissionCaches (line 676) | struct CleanupPermissionCaches; type PermissionUpdate (line 738) | pub struct PermissionUpdate { type PermissionType (line 744) | pub enum PermissionType { method can_read (line 751) | pub fn can_read(&self) -> bool { method can_write (line 754) | pub fn can_write(&self) -> bool { method is_higher_than (line 759) | pub fn is_higher_than(&self, other: &PermissionType) -> bool { method is_at_least (line 764) | pub fn is_at_least(&self, other: &PermissionType) -> bool { type BulkPermissionUpdate (line 770) | pub struct BulkPermissionUpdate { type WorkspaceSessionHandle (line 776) | struct WorkspaceSessionHandle { method new (line 787) | fn new( method new_with_cache_ttl (line 802) | fn new_with_cache_ttl( method can_write_collab (line 819) | async fn can_write_collab( method can_read_collab (line 853) | async fn can_read_collab( method apply_permission_updates (line 887) | async fn apply_permission_updates(&self, updates: Vec bool { FILE: services/appflowy-collaborate/tests/indexer_test.rs function document_plain_text (line 10) | fn document_plain_text() { function document_plain_text_with_nested_blocks (line 21) | fn document_plain_text_with_nested_blocks() { FILE: services/appflowy-worker/src/application.rs function run_server (line 36) | pub async fn run_server( function init_subscriber (line 50) | pub fn init_subscriber(app_env: &Environment) { function create_app (line 79) | pub async fn create_app(listener: TcpListener, config: Config) -> Result... type AppState (line 160) | pub struct AppState { function get_worker_mailer (line 169) | async fn get_worker_mailer(config: &Config) -> Result Result Result Self { function metrics_handler (line 247) | async fn metrics_handler(State(state): State>) -> impl Int... FILE: services/appflowy-worker/src/config.rs type Config (line 10) | pub struct Config { method from_env (line 19) | pub fn from_env() -> Result { type DatabaseSetting (line 66) | pub struct DatabaseSetting { method without_db (line 74) | pub fn without_db(&self) -> PgConnectOptions { method with_db (line 84) | pub fn with_db(&self) -> PgConnectOptions { method fmt (line 90) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type StreamSetting (line 102) | pub struct StreamSetting { type Environment (line 108) | pub enum Environment { type Err (line 114) | type Err = anyhow::Error; method from_str (line 116) | fn from_str(s: &str) -> Result { type S3Setting (line 129) | pub struct S3Setting { FILE: services/appflowy-worker/src/error.rs type WorkerError (line 3) | pub enum WorkerError { type ImportError (line 27) | pub enum ImportError { method from (line 60) | fn from(err: WorkerError) -> ImportError { method is_file_not_found (line 69) | pub fn is_file_not_found(&self) -> bool { method report (line 77) | pub fn report(&self, task_id: &str) -> (String, String) { FILE: services/appflowy-worker/src/import_worker/email_notifier.rs type EmailNotifier (line 6) | pub struct EmailNotifier(AFWorkerMailer); method new (line 8) | pub fn new(mailer: AFWorkerMailer) -> Self { method notify_progress (line 15) | async fn notify_progress(&self, progress: ImportProgress) { FILE: services/appflowy-worker/src/import_worker/report.rs type ImportNotifier (line 4) | pub trait ImportNotifier: Send + Sync + 'static { method notify_progress (line 5) | async fn notify_progress(&self, progress: ImportProgress); type ImportProgress (line 9) | pub enum ImportProgress { type ImportResult (line 15) | pub struct ImportResult { FILE: services/appflowy-worker/src/import_worker/worker.rs constant GROUP_NAME (line 69) | const GROUP_NAME: &str = "import_task_group"; constant CONSUMER_NAME (line 70) | const CONSUMER_NAME: &str = "appflowy_worker"; constant MAXIMUM_CONTENT_LENGTH (line 71) | const MAXIMUM_CONTENT_LENGTH: &str = "3221225472"; function run_import_worker (line 74) | pub async fn run_import_worker( function process_un_acked_tasks (line 123) | async fn process_un_acked_tasks( function process_upcoming_tasks (line 165) | async fn process_upcoming_tasks( type TaskContext (line 259) | struct TaskContext { function consume_task (line 270) | async fn consume_task( function handle_failed_task (line 366) | async fn handle_failed_task( function check_blob_existence (line 407) | async fn check_blob_existence( function process_and_ack_task (line 417) | async fn process_and_ack_task( function is_task_expired (line 431) | fn is_task_expired(created_timestamp: i64, last_process_at: Option)... function push_task (line 484) | async fn push_task( function delete_task (line 522) | async fn delete_task( function process_task (line 538) | async fn process_task( function download_and_unzip_file_retry (line 643) | pub async fn download_and_unzip_file_retry( function download_and_unzip_file (line 685) | async fn download_and_unzip_file( type ZipReader (line 799) | struct ZipReader { type StreamOrFile (line 806) | enum StreamOrFile { function get_zip_reader (line 817) | async fn get_zip_reader( function buffer_size_from_content_length (line 854) | fn buffer_size_from_content_length(content_length: Option) -> usize { function process_unzip_file (line 869) | async fn process_unzip_file( function clean_up (line 1211) | async fn clean_up(s3_client: &Arc, task: &NotionImportTask) { function remove_workspace (line 1217) | async fn remove_workspace(workspace_id: &str, pg_pool: &PgPool) { function notify_user (line 1228) | async fn notify_user( function batch_upload_files_to_s3 (line 1281) | async fn batch_upload_files_to_s3( function upload_file_to_s3 (line 1319) | async fn upload_file_to_s3( function get_encode_collab_from_bytes (line 1357) | async fn get_encode_collab_from_bytes( function ensure_consumer_group (line 1396) | async fn ensure_consumer_group( type UnAckTask (line 1422) | struct UnAckTask { function get_un_ack_tasks (line 1427) | async fn get_un_ack_tasks( type NotionImportTask (line 1470) | pub struct NotionImportTask { method fmt (line 1490) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type ImportTask (line 1502) | pub enum ImportTask { type Error (line 1522) | type Error = ImportError; method try_from (line 1524) | fn try_from(stream_id: &StreamId) -> Result { method fmt (line 1509) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function process_resources (line 1549) | async fn process_resources(resources: Vec) -> Vec) -> std::fmt::Result { function insert_meta_from_path (line 1593) | async fn insert_meta_from_path( function collab_key (line 1615) | fn collab_key(workspace_id: &Uuid, object_id: &Uuid) -> String { function encode_collab_key (line 1622) | fn encode_collab_key(object_id: T) -> String { FILE: services/appflowy-worker/src/indexer_worker/worker.rs type BackgroundIndexerConfig (line 24) | pub struct BackgroundIndexerConfig { function run_background_indexer (line 31) | pub async fn run_background_indexer( function process_upcoming_tasks (line 83) | async fn process_upcoming_tasks( function create_embedder (line 257) | fn create_embedder(config: &BackgroundIndexerConfig) -> Result Result { type Target (line 10) | type Target = Mailer; method deref (line 12) | fn deref(&self) -> &Self::Target { type ImportNotionMailerParam (line 42) | pub struct ImportNotionMailerParam { function render_import_report (line 59) | async fn render_import_report() { FILE: services/appflowy-worker/src/main.rs function main (line 15) | async fn main() -> Result<(), Box> { FILE: services/appflowy-worker/src/metric.rs type ImportMetrics (line 5) | pub struct ImportMetrics { method init (line 12) | pub fn init() -> Self { method register (line 21) | pub fn register(registry: &mut Registry) -> Self { method record_import_size_bytes (line 42) | pub fn record_import_size_bytes(&self, size: usize) { method incr_import_success_count (line 46) | pub fn incr_import_success_count(&self, count: i64) { method incr_import_fail_count (line 50) | pub fn incr_import_fail_count(&self, count: i64) { FILE: services/appflowy-worker/src/s3_client.rs type S3Client (line 25) | pub trait S3Client: Send + Sync { method get_blob_stream (line 26) | async fn get_blob_stream(&self, object_key: &str) -> Result Result<(), WorkerError>; method is_blob_exist (line 35) | async fn is_blob_exist(&self, object_key: &str) -> Result Result Result Result<(), WorkerErro... method is_blob_exist (line 181) | async fn is_blob_exist(&self, object_key: &str) -> Result Result Result &Self::Target { type S3StreamResponse (line 203) | pub struct S3StreamResponse { type AutoRemoveDownloadedFile (line 209) | pub struct AutoRemoveDownloadedFile { method path_buf (line 215) | pub fn path_buf(&self) -> &PathBuf { method as_ref (line 221) | fn as_ref(&self) -> &Path { method as_ref (line 227) | fn as_ref(&self) -> &PathBuf { type Target (line 233) | type Target = PathBuf; method deref (line 235) | fn deref(&self) -> &Self::Target { method drop (line 241) | fn drop(&mut self) { function download_file (line 257) | pub async fn download_file( function write_stream_to_file (line 288) | pub async fn write_stream_to_file( FILE: services/appflowy-worker/tests/import_test.rs function create_custom_task_test (line 25) | async fn create_custom_task_test(pg_pool: PgPool) { function redis_connection_manager (line 122) | pub async fn redis_connection_manager() -> redis::aio::ConnectionManager { function run_importer_worker (line 131) | fn run_importer_worker( type MockTaskProvider (line 158) | struct MockTaskProvider { method new (line 164) | fn new(redis_client: ConnectionManager, stream_name: String) -> Self { method create_task (line 171) | async fn create_task(&mut self, task: ImportTask) { type MockNotifier (line 181) | struct MockNotifier { method new (line 186) | fn new() -> Self { method subscribe (line 190) | fn subscribe(&self) -> tokio::sync::broadcast::Receiver { method notify_progress (line 197) | async fn notify_progress(&self, progress: ImportProgress) { type MockS3Client (line 203) | struct MockS3Client; method get_blob_stream (line 207) | async fn get_blob_stream(&self, _object_key: &str) -> Result Result<(), WorkerError> { method is_blob_exist (line 224) | async fn is_blob_exist(&self, _object_key: &str) -> Result Result Scope { function get_access_request_handler (line 35) | async fn get_access_request_handler( function post_access_request_handler (line 47) | async fn post_access_request_handler( function post_approve_access_request_handler (line 73) | async fn post_approve_access_request_handler( FILE: src/api/ai.rs function ai_completion_scope (line 22) | pub fn ai_completion_scope() -> Scope { function stream_complete_text_handler (line 35) | async fn stream_complete_text_handler( function stream_complete_v2_handler (line 75) | async fn stream_complete_v2_handler( function summarize_row_handler (line 100) | async fn summarize_row_handler( function translate_row_handler (line 140) | async fn translate_row_handler( type ConfigQuery (line 162) | struct ConfigQuery { function local_ai_config_handler (line 168) | async fn local_ai_config_handler( function calculate_similarity_handler (line 193) | async fn calculate_similarity_handler( function model_list_handler (line 208) | async fn model_list_handler( FILE: src/api/chat.rs function chat_scope (line 38) | pub fn chat_scope() -> Scope { function create_chat_handler (line 106) | async fn create_chat_handler( function delete_chat_handler (line 117) | async fn delete_chat_handler( function create_chat_context_handler (line 127) | async fn create_chat_context_handler( function update_question_handler (line 140) | async fn update_question_handler( function get_related_message_handler (line 160) | async fn get_related_message_handler( function create_question_handler (line 176) | async fn create_question_handler( function create_answer_handler (line 197) | async fn create_answer_handler( function answer_handler (line 218) | async fn answer_handler( function answer_stream_handler (line 238) | async fn answer_stream_handler( function answer_stream_v2_handler (line 283) | async fn answer_stream_v2_handler( function answer_stream_v3_handler (line 337) | async fn answer_stream_v3_handler( function get_chat_message_handler (line 396) | async fn get_chat_message_handler( function get_chat_question_message_handler (line 425) | async fn get_chat_question_message_handler( function get_chat_settings_handler (line 436) | async fn get_chat_settings_handler( function update_chat_settings_handler (line 446) | async fn update_chat_settings_handler( type FinalAnswerStream (line 458) | pub struct FinalAnswerStream { function new (line 466) | pub fn new(stream: S, action: F) -> Self { type Item (line 480) | type Item = Result; method poll_next (line 482) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { type CollectingStreamType (line 514) | enum CollectingStreamType { function new (line 520) | pub fn new(stream: S, action: F) -> Self { type Item (line 536) | type Item = Result; method poll_next (line 538) | fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll Scope { function create_import_handler (line 42) | async fn create_import_handler( function get_import_detail_handler (line 117) | async fn get_import_detail_handler( function import_data_handler (line 146) | async fn import_data_handler( function upload_file_with_retry (line 261) | async fn upload_file_with_retry( function check_maximum_task (line 293) | async fn check_maximum_task(state: &Data, uid: i64) -> Result<... type AutoDeletedFile (line 308) | pub struct AutoDeletedFile { method drop (line 316) | fn drop(&mut self) { function write_multiple_part (line 329) | pub async fn write_multiple_part( function get_host_from_request (line 386) | fn get_host_from_request(req: &HttpRequest) -> String { FILE: src/api/file_storage.rs function file_storage_scope (line 42) | pub fn file_storage_scope() -> Scope { function create_upload (line 91) | async fn create_upload( type UploadPartPath (line 127) | struct UploadPartPath { function upload_part_handler (line 136) | async fn upload_part_handler( function complete_upload_handler (line 196) | async fn complete_upload_handler( function put_blob_handler (line 225) | async fn put_blob_handler( function delete_blob_handler (line 302) | async fn delete_blob_handler( function get_blob_v1_handler (line 324) | async fn get_blob_v1_handler( function delete_blob_v1_handler (line 334) | async fn delete_blob_v1_handler( function get_blob_by_object_key (line 355) | async fn get_blob_by_object_key( function get_blob_handler (line 446) | async fn get_blob_handler( function get_blob_metadata_handler (line 456) | async fn get_blob_metadata_handler( function get_blob_metadata_v1_handler (line 480) | async fn get_blob_metadata_v1_handler( function get_workspace_usage_handler (line 504) | async fn get_workspace_usage_handler( function get_all_workspace_blob_metadata_handler (line 519) | async fn get_all_workspace_blob_metadata_handler( function payload_to_async_read (line 541) | fn payload_to_async_read(payload: Payload) -> Pin> { function put_blob_handler_v1 (line 549) | async fn put_blob_handler_v1( type BlobPathV0 (line 616) | struct BlobPathV0 { method workspace_id (line 622) | fn workspace_id(&self) -> &Uuid { method object_key (line 626) | fn object_key(&self) -> String { method blob_metadata_key (line 630) | fn blob_metadata_key(&self) -> String { method e_tag (line 634) | fn e_tag(&self) -> &str { type BlobPathV1 (line 641) | pub struct BlobPathV1 { method from (line 672) | fn from((path, file_id): (BlobPathV2, String)) -> Self { method workspace_id (line 648) | fn workspace_id(&self) -> &Uuid { method object_key (line 652) | fn object_key(&self) -> String { method blob_metadata_key (line 656) | fn blob_metadata_key(&self) -> String { method e_tag (line 660) | fn e_tag(&self) -> &str { type BlobPathV2 (line 666) | pub struct BlobPathV2 { FILE: src/api/guest.rs function sharing_scope (line 23) | pub fn sharing_scope() -> Scope { function list_shared_views_handler (line 40) | async fn list_shared_views_handler( function put_shared_view_handler (line 54) | async fn put_shared_view_handler( function shared_view_access_details_handler (line 69) | async fn shared_view_access_details_handler( function revoke_shared_view_access_handler (line 84) | async fn revoke_shared_view_access_handler( FILE: src/api/invite_code.rs function invite_code_scope (line 14) | pub fn invite_code_scope() -> Scope { function get_invite_code_info_handler (line 19) | async fn get_invite_code_info_handler( FILE: src/api/metrics.rs function metrics_scope (line 17) | pub fn metrics_scope() -> Scope { function metrics_handler (line 21) | async fn metrics_handler(reg: web::Data>) -> Result Self { method register (line 78) | pub fn register(registry: &mut Registry) -> Self { method record_search_tokens_used (line 105) | pub fn record_search_tokens_used(&self, workspace_id: &Uuid, tokens: u... method record_request (line 115) | pub fn record_request( type TraceLabel (line 64) | pub struct TraceLabel { type PublishedCollabMetrics (line 149) | pub struct PublishedCollabMetrics { method init (line 159) | fn init() -> Self { method register (line 170) | pub fn register(registry: &mut Registry) -> Self { method incr_success_write_count (line 207) | pub fn incr_success_write_count(&self, count: i64) { method incr_fallback_write_count (line 211) | pub fn incr_fallback_write_count(&self, count: i64) { method incr_failure_write_count (line 215) | pub fn incr_failure_write_count(&self, count: i64) { method incr_success_read_count (line 219) | pub fn incr_success_read_count(&self, count: i64) { method incr_fallback_read_count (line 223) | pub fn incr_fallback_read_count(&self, count: i64) { method incr_failure_read_count (line 227) | pub fn incr_failure_read_count(&self, count: i64) { type AppFlowyWebMetrics (line 232) | pub struct AppFlowyWebMetrics { method init (line 240) | pub fn init() -> Self { method register (line 251) | pub fn register(registry: &mut Registry) -> Self { method record_update_size_bytes (line 277) | pub fn record_update_size_bytes(&self, size: usize) { method incr_decoding_failure_count (line 281) | pub fn incr_decoding_failure_count(&self, count: i64) { method incr_apply_update_failure_count (line 285) | pub fn incr_apply_update_failure_count(&self, count: i64) { method incr_apply_update_timeout_count (line 289) | pub fn incr_apply_update_timeout_count(&self, count: i64) { FILE: src/api/search.rs function search_scope (line 17) | pub fn search_scope() -> Scope { function document_search_handler (line 26) | async fn document_search_handler( function summary_search_results_handler (line 55) | async fn summary_search_results_handler( function create_ai_tool (line 75) | pub fn create_ai_tool( FILE: src/api/server_info.rs function server_info_scope (line 8) | pub fn server_info_scope() -> Scope { function server_info_handler (line 12) | async fn server_info_handler( FILE: src/api/template.rs function template_scope (line 21) | pub fn template_scope() -> Scope { function post_template_category_handler (line 61) | async fn post_template_category_handler( function list_template_categories_handler (line 79) | async fn list_template_categories_handler( function update_template_category_handler (line 94) | async fn update_template_category_handler( function get_template_category_handler (line 115) | async fn get_template_category_handler( function delete_template_category_handler (line 124) | async fn delete_template_category_handler( function post_template_creator_handler (line 134) | async fn post_template_creator_handler( function list_template_creators_handler (line 149) | async fn list_template_creators_handler( function update_template_creator_handler (line 159) | async fn update_template_creator_handler( function get_template_creator_handler (line 177) | async fn get_template_creator_handler( function delete_template_creator_handler (line 186) | async fn delete_template_creator_handler( function post_template_handler (line 196) | async fn post_template_handler( function list_templates_handler (line 218) | async fn list_templates_handler( function get_template_handler (line 236) | async fn get_template_handler( function update_template_handler (line 245) | async fn update_template_handler( function delete_template_handler (line 269) | async fn delete_template_handler( function get_template_homepage_handler (line 279) | async fn get_template_homepage_handler( type UploadAvatarForm (line 289) | struct UploadAvatarForm { function get_avatar_handler (line 294) | async fn get_avatar_handler( function put_avatar_handler (line 307) | async fn put_avatar_handler( FILE: src/api/user.rs function user_scope (line 21) | pub fn user_scope() -> Scope { function verify_user_handler (line 36) | async fn verify_user_handler( function get_user_profile_handler (line 49) | async fn get_user_profile_handler( function get_user_workspace_info_handler (line 60) | async fn get_user_workspace_info_handler( function update_user_handler (line 77) | async fn update_user_handler( function delete_user_handler (line 88) | async fn delete_user_handler( type UploadUserImageAssetForm (line 116) | struct UploadUserImageAssetForm { function get_user_image_asset_handler (line 121) | async fn get_user_image_asset_handler( function post_user_image_asset_handler (line 135) | async fn post_user_image_asset_handler( FILE: src/api/util.rs function compress_type_from_header_value (line 18) | pub fn compress_type_from_header_value(headers: &HeaderMap) -> Result( function client_version_from_headers (line 74) | pub fn client_version_from_headers(headers: &HeaderMap) -> Result<&str, ... function device_id_from_headers (line 83) | pub fn device_id_from_headers(headers: &HeaderMap) -> Result<&str, AppEr... function realtime_user_for_web_request (line 92) | pub fn realtime_user_for_web_request( type CollabValidator (line 114) | pub trait CollabValidator { method check_encode_collab (line 115) | async fn check_encode_collab(&self) -> Result<(), AppError>; method check_encode_collab (line 120) | async fn check_encode_collab(&self) -> Result<(), AppError> { type PayloadReader (line 127) | pub struct PayloadReader { method new (line 135) | pub fn new(payload: Payload) -> Self { method read_exact (line 144) | pub async fn read_exact(&mut self, dest: &mut [u8]) -> actix_web::Resu... method read_u32_little_endian (line 160) | pub async fn read_u32_little_endian(&mut self) -> actix_web::Result actix_web::Result... method len (line 184) | fn len(&self) -> usize { method fill_buffer (line 188) | async fn fill_buffer(&mut self) -> actix_web::Result { function copy_buffer (line 207) | fn copy_buffer(src: &[u8], dest: &mut [u8]) -> usize { function ai_model_from_header (line 214) | pub(crate) fn ai_model_from_header(req: &HttpRequest) -> &str { function setup_headers (line 227) | fn setup_headers(key: &str, value: &str) -> HeaderMap { function test_client_version_valid_variations (line 237) | fn test_client_version_valid_variations() { function test_device_id_valid_variations (line 253) | fn test_device_id_valid_variations() { function test_missing_client_version (line 270) | fn test_missing_client_version() { function test_missing_device_id (line 283) | fn test_missing_device_id() { function test_invalid_header_value (line 296) | fn test_invalid_header_value() { function test_value_from_headers_multiple_keys_present (line 315) | fn test_value_from_headers_multiple_keys_present() { FILE: src/api/workspace.rs constant WORKSPACE_ID_PATH (line 89) | pub const WORKSPACE_ID_PATH: &str = "workspace_id"; constant COLLAB_OBJECT_ID_PATH (line 90) | pub const COLLAB_OBJECT_ID_PATH: &str = "object_id"; constant WORKSPACE_PATTERN (line 92) | pub const WORKSPACE_PATTERN: &str = "/api/workspace"; constant WORKSPACE_MEMBER_PATTERN (line 93) | pub const WORKSPACE_MEMBER_PATTERN: &str = "/api/workspace/{workspace_id... constant WORKSPACE_INVITE_PATTERN (line 94) | pub const WORKSPACE_INVITE_PATTERN: &str = "/api/workspace/{workspace_id... constant COLLAB_PATTERN (line 95) | pub const COLLAB_PATTERN: &str = "/api/workspace/{workspace_id}/collab/{... constant V1_COLLAB_PATTERN (line 96) | pub const V1_COLLAB_PATTERN: &str = "/api/workspace/v1/{workspace_id}/co... constant WORKSPACE_PUBLISH_PATTERN (line 97) | pub const WORKSPACE_PUBLISH_PATTERN: &str = "/api/workspace/{workspace_i... constant WORKSPACE_PUBLISH_NAMESPACE_PATTERN (line 98) | pub const WORKSPACE_PUBLISH_NAMESPACE_PATTERN: &str = function workspace_scope (line 101) | pub fn workspace_scope() -> Scope { function collab_scope (line 424) | pub fn collab_scope() -> Scope { function create_workspace_handler (line 436) | async fn create_workspace_handler( function patch_workspace_handler (line 465) | async fn patch_workspace_handler( function delete_workspace_handler (line 486) | async fn delete_workspace_handler( function list_workspace_handler (line 509) | async fn list_workspace_handler( function post_workspace_invite_handler (line 538) | async fn post_workspace_invite_handler( function get_workspace_invite_handler (line 564) | async fn get_workspace_invite_handler( function get_workspace_invite_by_id_handler (line 576) | async fn get_workspace_invite_by_id_handler( function post_accept_workspace_invite_handler (line 588) | async fn post_accept_workspace_invite_handler( function post_join_workspace_invite_by_code_handler (line 607) | async fn post_join_workspace_invite_by_code_handler( function get_workspace_settings_handler (line 629) | async fn get_workspace_settings_handler( function post_workspace_settings_handler (line 645) | async fn post_workspace_settings_handler( function get_workspace_members_handler (line 667) | async fn get_workspace_members_handler( function remove_workspace_member_handler (line 695) | async fn remove_workspace_member_handler( function list_workspace_mentionable_person_handler (line 726) | async fn list_workspace_mentionable_person_handler( function list_page_mentionable_person_with_access_handler (line 753) | async fn list_page_mentionable_person_with_access_handler( function put_page_mention_handler (line 779) | async fn put_page_mention_handler( function get_workspace_mentionable_person_handler (line 803) | async fn get_workspace_mentionable_person_handler( function put_workspace_member_profile_handler (line 820) | async fn put_workspace_member_profile_handler( function get_workspace_member_handler (line 838) | async fn get_workspace_member_handler( function get_workspace_member_v1_handler (line 874) | async fn get_workspace_member_v1_handler( function open_workspace_handler (line 910) | async fn open_workspace_handler( function leave_workspace_handler (line 927) | async fn leave_workspace_handler( function update_workspace_member_handler (line 944) | async fn update_workspace_member_handler( function create_collab_handler (line 977) | async fn create_collab_handler( function batch_create_collab_handler (line 1076) | async fn batch_create_collab_handler( function get_collab_handler (line 1228) | async fn get_collab_handler( function v1_get_collab_handler (line 1263) | async fn v1_get_collab_handler( function get_collab_json_handler (line 1292) | async fn get_collab_json_handler( function post_web_update_handler (line 1323) | async fn post_web_update_handler( function get_row_document_collab_exists_handler (line 1359) | async fn get_row_document_collab_exists_handler( function post_space_handler (line 1380) | async fn post_space_handler( function update_space_handler (line 1404) | async fn update_space_handler( function post_folder_view_handler (line 1429) | async fn post_folder_view_handler( function post_page_view_handler (line 1454) | async fn post_page_view_handler( function post_orphaned_view_handler (line 1479) | async fn post_orphaned_view_handler( function append_block_to_page_handler (line 1498) | async fn append_block_to_page_handler( function move_page_handler (line 1523) | async fn move_page_handler( function reorder_favorite_page_handler (line 1546) | async fn reorder_favorite_page_handler( function duplicate_page_handler (line 1568) | async fn duplicate_page_handler( function move_page_to_trash_handler (line 1584) | async fn move_page_to_trash_handler( function restore_page_from_trash_handler (line 1598) | async fn restore_page_from_trash_handler( function add_recent_pages_handler (line 1612) | async fn add_recent_pages_handler( function restore_all_pages_from_trash_handler (line 1628) | async fn restore_all_pages_from_trash_handler( function delete_page_from_trash_handler (line 1642) | async fn delete_page_from_trash_handler( function delete_all_pages_from_trash_handler (line 1664) | async fn delete_all_pages_from_trash_handler( function publish_page_handler (line 1687) | async fn publish_page_handler( function unpublish_page_handler (line 1724) | async fn unpublish_page_handler( function post_page_database_view_handler (line 1749) | async fn post_page_database_view_handler( function update_page_view_handler (line 1772) | async fn update_page_view_handler( function update_page_name_handler (line 1803) | async fn update_page_name_handler( function update_page_icon_handler (line 1818) | async fn update_page_icon_handler( function update_page_extra_handler (line 1834) | async fn update_page_extra_handler( function remove_page_icon_handler (line 1849) | async fn remove_page_icon_handler( function get_page_view_handler (line 1863) | async fn get_page_view_handler( function favorite_page_view_handler (line 1887) | async fn favorite_page_view_handler( function batch_get_collab_handler (line 1911) | async fn batch_get_collab_handler( function update_collab_handler (line 1933) | async fn update_collab_handler( function delete_collab_handler (line 1996) | async fn delete_collab_handler( function put_workspace_default_published_view_handler (line 2019) | async fn put_workspace_default_published_view_handler( function delete_workspace_default_published_view_handler (line 2041) | async fn delete_workspace_default_published_view_handler( function get_workspace_published_default_info_handler (line 2057) | async fn get_workspace_published_default_info_handler( function put_publish_namespace_handler (line 2068) | async fn put_publish_namespace_handler( function get_publish_namespace_handler (line 2094) | async fn get_publish_namespace_handler( function get_default_published_collab_info_meta_handler (line 2104) | async fn get_default_published_collab_info_meta_handler( function get_v1_published_collab_handler (line 2116) | async fn get_v1_published_collab_handler( function get_published_collab_blob_handler (line 2128) | async fn get_published_collab_blob_handler( function post_published_duplicate_handler (line 2140) | async fn post_published_duplicate_handler( function list_published_collab_info_handler (line 2170) | async fn list_published_collab_info_handler( function get_published_collab_info_handler (line 2187) | async fn get_published_collab_info_handler( function get_v1_published_collab_info_handler (line 2202) | async fn get_v1_published_collab_info_handler( function get_published_collab_comment_handler (line 2214) | async fn get_published_collab_comment_handler( function post_published_collab_comment_handler (line 2226) | async fn post_published_collab_comment_handler( function delete_published_collab_comment_handler (line 2244) | async fn delete_published_collab_comment_handler( function get_published_collab_reaction_handler (line 2255) | async fn get_published_collab_reaction_handler( function post_published_collab_reaction_handler (line 2267) | async fn post_published_collab_reaction_handler( function delete_published_collab_reaction_handler (line 2285) | async fn delete_published_collab_reaction_handler( function post_publish_collabs_handler (line 2304) | async fn post_publish_collabs_handler( function patch_published_collabs_handler (line 2364) | async fn patch_published_collabs_handler( function delete_published_collabs_handler (line 2381) | async fn delete_published_collabs_handler( function post_realtime_message_stream_handler (line 2400) | async fn post_realtime_message_stream_handler( function get_workspace_usage_handler (line 2444) | async fn get_workspace_usage_handler( function get_workspace_folder_handler (line 2460) | async fn get_workspace_folder_handler( function get_recent_views_handler (line 2490) | async fn get_recent_views_handler( function get_favorite_views_handler (line 2509) | async fn get_favorite_views_handler( function get_trash_views_handler (line 2528) | async fn get_trash_views_handler( function get_workspace_publish_outline_handler (line 2546) | async fn get_workspace_publish_outline_handler( function list_database_handler (line 2561) | async fn list_database_handler( function list_database_row_id_handler (line 2579) | async fn list_database_row_id_handler( function post_database_row_handler (line 2597) | async fn post_database_row_handler( function put_database_row_handler (line 2618) | async fn put_database_row_handler( function get_database_fields_handler (line 2655) | async fn get_database_fields_handler( function post_database_fields_handler (line 2673) | async fn post_database_fields_handler( function list_database_row_id_updated_handler (line 2692) | async fn list_database_row_id_updated_handler( function list_database_row_details_handler (line 2722) | async fn list_database_row_details_handler( function parser_realtime_msg (line 2755) | async fn parser_realtime_msg( function get_collab_embed_info_handler (line 2798) | async fn get_collab_embed_info_handler( function force_generate_collab_embedding_handler (line 2815) | async fn force_generate_collab_embedding_handler( function batch_get_collab_embed_info_handler (line 2830) | async fn batch_get_collab_embed_info_handler( function collab_full_sync_handler (line 2842) | async fn collab_full_sync_handler( function post_quick_note_handler (line 2949) | async fn post_quick_note_handler( function list_quick_notes_handler (line 2966) | async fn list_quick_notes_handler( function update_quick_note_handler (line 2995) | async fn update_quick_note_handler( function delete_quick_note_handler (line 3011) | async fn delete_quick_note_handler( function delete_workspace_invite_code_handler (line 3026) | async fn delete_workspace_invite_code_handler( function get_workspace_invite_code_handler (line 3041) | async fn get_workspace_invite_code_handler( function post_workspace_invite_code_handler (line 3058) | async fn post_workspace_invite_code_handler( FILE: src/api/ws.rs function ws_scope (line 28) | pub fn ws_scope() -> Scope { constant MAX_FRAME_SIZE (line 34) | const MAX_FRAME_SIZE: usize = 65_536; type RealtimeServerAddr (line 36) | pub type RealtimeServerAddr = Addr; function establish_ws_connection (line 41) | pub async fn establish_ws_connection( function establish_ws_connection_v1 (line 67) | pub async fn establish_ws_connection_v1( function establish_ws_connection_v2 (line 109) | pub async fn establish_ws_connection_v2( function start_connect (line 164) | async fn start_connect( function listen_on_user_change (line 231) | fn listen_on_user_change(state: &Data, uid: i64, tx: Sender(source: &T) -> Result Result; method extract_param (line 275) | fn extract_param(&self, key: &str) -> Result { method extract_param (line 287) | fn extract_param(&self, key: &str) -> Result { type WsConnectionV2Params (line 326) | struct WsConnectionV2Params { method parse (line 334) | fn parse(req: &HttpRequest) -> Result { method from_url (line 360) | fn from_url(url_params: &HashMap, Cow>, param: &str) -> ... FILE: src/application.rs type Application (line 81) | pub struct Application { method build (line 87) | pub async fn build(config: Config, state: AppState) -> Result Result<(), std::io::Error> { method port (line 101) | pub fn port(&self) -> u16 { function run_actix_server (line 106) | pub async fn run_actix_server( function init_state (line 186) | pub async fn init_state(config: &Config) -> Result { function get_admin_client (line 399) | fn get_admin_client( function get_redis_client (line 410) | async fn get_redis_client( function get_aws_s3_client (line 444) | pub async fn get_aws_s3_client(s3_setting: &S3Setting) -> Result Result Result Result<(), Error> { function get_gotrue_client (line 558) | async fn get_gotrue_client(setting: &GoTrueSetting) -> Result impl Responder { function actix_cors_scope (line 573) | fn actix_cors_scope() -> actix_cors::Cors { FILE: src/biz/access_request/ops.rs function create_access_request (line 25) | pub async fn create_access_request( function get_access_request (line 70) | pub async fn get_access_request( function approve_or_reject_access_request (line 109) | pub async fn approve_or_reject_access_request( FILE: src/biz/authentication/jwt.rs type UserUuid (line 14) | pub struct UserUuid(uuid::Uuid); method from_auth (line 17) | pub fn from_auth(auth: Authorization) -> Result { type Target (line 23) | type Target = uuid::Uuid; method deref (line 25) | fn deref(&self) -> &Self::Target { type UserToken (line 31) | pub struct UserToken(pub String); method from_auth (line 33) | pub fn from_auth(auth: Authorization) -> Result { method fmt (line 39) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { type Error (line 45) | type Error = actix_web::Error; type Future (line 47) | type Future = std::future::Ready>; method from_request (line 49) | fn from_request(req: &HttpRequest, _payload: &mut Payload) -> Self::Futu... type OptionalUserUuid (line 63) | pub struct OptionalUserUuid(Option); method as_uuid (line 83) | pub fn as_uuid(&self) -> Option { type Error (line 66) | type Error = actix_web::Error; type Future (line 68) | type Future = std::future::Ready>; method from_request (line 70) | fn from_request(req: &HttpRequest, _payload: &mut Payload) -> Self::Futu... type Authorization (line 89) | pub struct Authorization { method uuid (line 95) | pub fn uuid(&self) -> Result { type Error (line 113) | type Error = actix_web::Error; type Future (line 115) | type Future = std::future::Ready>; method from_request (line 117) | fn from_request(req: &HttpRequest, _payload: &mut Payload) -> Self::Futu... function get_auth_from_request (line 126) | fn get_auth_from_request(req: &HttpRequest) -> Result Resu... function update_chat_message (line 42) | pub async fn update_chat_message( function generate_chat_message_answer (line 83) | pub async fn generate_chat_message_answer( function create_chat_message (line 127) | pub async fn create_chat_message( function get_chat_messages (line 148) | pub async fn get_chat_messages( function get_chat_messages_with_author_uuid (line 161) | pub async fn get_chat_messages_with_author_uuid( function get_question_message (line 174) | pub async fn get_question_message( FILE: src/biz/collab/database.rs type LinkedViewDependencies (line 29) | pub struct LinkedViewDependencies { function resolve_dependencies_when_create_database_linked_view (line 36) | pub fn resolve_dependencies_when_create_database_linked_view( function resolve_grid_dependencies (line 47) | fn resolve_grid_dependencies(fields: &[Field]) -> Result Result Result Field { function create_card_status_field (line 163) | fn create_card_status_field() -> Field { function check_if_row_document_collab_exists (line 171) | pub async fn check_if_row_document_collab_exists( type PostgresDatabaseCollabService (line 183) | pub struct PostgresDatabaseCollabService { method new (line 191) | pub fn new( method reader_client_id (line 207) | async fn reader_client_id(&self) -> ClientID { method reader_get_collab (line 211) | async fn reader_get_collab( method reader_batch_get_collabs (line 232) | async fn reader_batch_get_collabs( method database_row_cache (line 256) | fn database_row_cache(&self) -> Option Op... function to_folder_view (line 112) | fn to_folder_view( function section_items_to_favorite_folder_view (line 213) | pub fn section_items_to_favorite_folder_view( function section_items_to_recent_folder_view (line 262) | pub fn section_items_to_recent_folder_view( function section_items_to_trash_folder_view (line 302) | pub fn section_items_to_trash_folder_view( type ViewTree (line 341) | pub struct ViewTree { function get_view_and_children (line 346) | pub fn get_view_and_children( function get_view_and_children_recursive (line 360) | fn get_view_and_children_recursive( function get_self_and_ancestor_views (line 386) | pub fn get_self_and_ancestor_views( function get_space_view_for_current_view (line 407) | pub fn get_space_view_for_current_view(folder: &Folder, view_id: &str, u... function check_if_space_is_private (line 424) | pub fn check_if_space_is_private(folder: &Folder, view_id: &str) -> bool { function check_if_view_is_private (line 431) | pub fn check_if_view_is_private(folder: &Folder, view_id: &str, uid: i64... function check_if_view_is_space (line 453) | pub fn check_if_view_is_space(view: &collab_folder::View) -> bool { function parse_extra_field_as_json (line 471) | pub fn parse_extra_field_as_json(extra: &str) -> serde_json::Value { function to_dto_view_icon (line 478) | pub fn to_dto_view_icon( function to_dto_view_icon_type (line 487) | pub fn to_dto_view_icon_type( function to_dto_view_layout (line 497) | pub fn to_dto_view_layout(collab_folder_view_layout: &CollabFolderViewLa... function to_dto_folder_view_miminal (line 507) | pub fn to_dto_folder_view_miminal(collab_folder_view: &collab_folder::Vi... function to_folder_view_icon (line 516) | pub fn to_folder_view_icon(icon: workspace_dto::ViewIcon) -> collab_fold... function to_folder_view_icon_type (line 523) | pub fn to_folder_view_icon_type(icon: workspace_dto::IconType) -> collab... function to_folder_view_layout (line 531) | pub fn to_folder_view_layout(layout: workspace_dto::ViewLayout) -> colla... function to_space_permission (line 541) | pub fn to_space_permission(space_permission: &workspace_dto::SpacePermis... FILE: src/biz/collab/ops.rs function get_user_favorite_folder_views (line 86) | pub async fn get_user_favorite_folder_views( function get_user_recent_folder_views (line 116) | pub async fn get_user_recent_folder_views( function get_user_trash_folder_views (line 146) | pub async fn get_user_trash_folder_views( function patch_old_workspace_folder (line 161) | fn patch_old_workspace_folder( function fix_old_workspace_folder (line 208) | async fn fix_old_workspace_folder( function get_user_workspace_structure (line 252) | pub async fn get_user_workspace_structure( function get_latest_workspace_database (line 290) | pub async fn get_latest_workspace_database( function get_published_view (line 312) | pub async fn get_published_view( function list_database (line 348) | pub async fn list_database( function list_database_row_ids (line 401) | pub async fn list_database_row_ids( function insert_database_row (line 428) | pub async fn insert_database_row( function upsert_database_row (line 596) | pub async fn upsert_database_row( function get_database_fields (line 757) | pub async fn get_database_fields( function add_database_field (line 782) | pub async fn add_database_field( function list_database_row_ids_updated (line 841) | pub async fn list_database_row_ids_updated( function list_database_row_details (line 859) | pub async fn list_database_row_details( function fill_in_db_row_doc (line 975) | fn fill_in_db_row_doc( FILE: src/biz/collab/publish_outline.rs function collab_folder_to_published_outline (line 11) | pub fn collab_folder_to_published_outline( function to_publish_view (line 40) | fn to_publish_view( FILE: src/biz/collab/utils.rs constant DEFAULT_SPACE_ICON (line 44) | pub const DEFAULT_SPACE_ICON: &str = "interface_essential/home-3"; constant DEFAULT_SPACE_ICON_COLOR (line 45) | pub const DEFAULT_SPACE_ICON_COLOR: &str = "0xFFA34AFD"; function get_row_details_serde (line 48) | pub fn get_row_details_serde( function field_by_name_uniq (line 94) | pub fn field_by_name_uniq(mut fields: Vec) -> HashMap) -> HashMap R... function collab_to_doc_state (line 392) | pub async fn collab_to_doc_state( function collab_from_doc_state (line 407) | pub fn collab_from_doc_state( function write_to_database_row (line 422) | pub async fn write_to_database_row( function create_row_document (line 483) | pub async fn create_row_document( type DocChanges (line 528) | pub enum DocChanges { function get_database_row_doc_changes (line 534) | pub async fn get_database_row_doc_changes( type CreatedRowDocument (line 627) | pub struct CreatedRowDocument { FILE: src/biz/data_import/mod.rs function create_archive (line 19) | pub async fn create_archive( type LimitedPayload (line 55) | pub struct LimitedPayload { method new (line 61) | pub fn new(payload: Payload, limit: usize) -> Self { type Item (line 70) | type Item = Result; method poll_next (line 72) | fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll Result { method subscribe_user_change (line 16) | pub fn subscribe_user_change(&self, uid: i64) -> tokio::sync::mpsc::Re... type UserListener (line 32) | pub type UserListener = PostgresDBListener; FILE: src/biz/search/ops.rs function is_view_searchable (line 26) | fn is_view_searchable(view: &View, workspace_id: &str) -> bool { function populate_searchable_view_ids (line 31) | fn populate_searchable_view_ids( function search_document (line 77) | pub async fn search_document( function summarize_search_results (line 175) | pub async fn summarize_search_results( FILE: src/biz/template/ops.rs function create_new_template_category (line 25) | pub async fn create_new_template_category( function update_template_category (line 48) | pub async fn update_template_category( function get_template_categories (line 72) | pub async fn get_template_categories( function get_template_category (line 81) | pub async fn get_template_category( function delete_template_category (line 89) | pub async fn delete_template_category( function create_new_template_creator (line 97) | pub async fn create_new_template_creator( function update_template_creator (line 108) | pub async fn update_template_creator( function get_template_creators (line 130) | pub async fn get_template_creators( function get_template_creator (line 139) | pub async fn get_template_creator( function delete_template_creator (line 147) | pub async fn delete_template_creator( function create_new_template (line 156) | pub async fn create_new_template( function update_template (line 196) | pub async fn update_template( function get_templates_with_publish_info (line 237) | pub async fn get_templates_with_publish_info( function get_template_with_publish_info (line 279) | pub async fn get_template_with_publish_info( function delete_template (line 292) | pub async fn delete_template(pg_pool: &PgPool, view_id: Uuid) -> Result<... constant DEFAULT_HOMEPAGE_CATEGORY_COUNT (line 297) | const DEFAULT_HOMEPAGE_CATEGORY_COUNT: i64 = 10; function get_template_homepage (line 299) | pub async fn get_template_homepage( function avatar_object_key (line 388) | fn avatar_object_key(file_id: &str) -> String { function get_avatar (line 392) | pub async fn get_avatar( function upload_avatar (line 408) | pub async fn upload_avatar( FILE: src/biz/user/image_asset.rs function user_image_asset_object_key (line 10) | fn user_image_asset_object_key(person_id: &Uuid, file_id: &str) -> String { function upload_user_image_asset (line 14) | pub async fn upload_user_image_asset( function get_user_image_asset (line 58) | pub async fn get_user_image_asset( FILE: src/biz/user/user_delete.rs function delete_user (line 16) | pub async fn delete_user( function revoke_apple_user (line 81) | async fn revoke_apple_user( function is_apple_user (line 113) | fn is_apple_user(auth: &Authorization) -> bool { function revoke_apple_token_http_call (line 134) | async fn revoke_apple_token_http_call( FILE: src/biz/user/user_info.rs function get_profile (line 14) | pub async fn get_profile(pg_pool: &PgPool, uuid: &Uuid) -> anyhow::Resul... function get_user_workspace_info (line 27) | pub async fn get_user_workspace_info( function update_user (line 79) | pub async fn update_user( FILE: src/biz/user/user_init.rs function initialize_workspace_for_user (line 21) | pub async fn initialize_workspace_for_user( function create_user_awareness (line 111) | pub(crate) async fn create_user_awareness( function create_workspace_collab (line 150) | pub(crate) async fn create_workspace_collab( function create_workspace_database_collab (line 189) | pub(crate) async fn create_workspace_database_collab( function user_awareness_object_id (line 231) | pub fn user_awareness_object_id(user_uuid: &Uuid, workspace_id: &Uuid) -... FILE: src/biz/user/user_verify.rs function verify_token (line 20) | pub async fn verify_token(access_token: &str, state: &AppState) -> Resul... function name_from_user_metadata (line 77) | fn name_from_user_metadata(value: &serde_json::Value) -> String { FILE: src/biz/workspace/duplicate.rs function duplicate_view_tree_and_collab (line 34) | pub async fn duplicate_view_tree_and_collab( function duplicate_database_data_with_context (line 123) | fn duplicate_database_data_with_context( function duplicate_database (line 178) | async fn duplicate_database( function duplicate_document (line 284) | async fn duplicate_document( type DuplicateContext (line 332) | struct DuplicateContext { function duplicate_views (line 339) | fn duplicate_views(views: &[View], suffix: &str) -> Result String { function join_workspace_invite_by_code (line 36) | pub async fn join_workspace_invite_by_code( function delete_workspace_invite_code (line 46) | pub async fn delete_workspace_invite_code( function get_invite_code_for_workspace (line 54) | pub async fn get_invite_code_for_workspace( function get_invitation_code_info (line 62) | pub async fn get_invitation_code_info( FILE: src/biz/workspace/ops.rs constant MAX_COMMENT_LENGTH (line 43) | pub(crate) const MAX_COMMENT_LENGTH: usize = 5000; function delete_workspace_for_user (line 45) | pub async fn delete_workspace_for_user( function create_empty_workspace (line 68) | pub async fn create_empty_workspace( function create_workspace_for_user (line 118) | pub async fn create_workspace_for_user( function patch_workspace (line 154) | pub async fn patch_workspace( function get_comments_on_published_view (line 171) | pub async fn get_comments_on_published_view( function create_comment_on_published_view (line 187) | pub async fn create_comment_on_published_view( function remove_comment_on_published_view (line 203) | pub async fn remove_comment_on_published_view( function get_reactions_on_published_view (line 214) | pub async fn get_reactions_on_published_view( function create_reaction_on_comment (line 232) | pub async fn create_reaction_on_comment( function remove_reaction_on_comment (line 243) | pub async fn remove_reaction_on_comment( function get_all_user_workspaces (line 253) | pub async fn get_all_user_workspaces( function open_workspace (line 306) | pub async fn open_workspace( function accept_workspace_invite (line 327) | pub async fn accept_workspace_invite( function invite_workspace_members (line 357) | pub async fn invite_workspace_members( function list_workspace_invitations_for_user (line 472) | pub async fn list_workspace_invitations_for_user( function get_workspace_invitations_for_user (line 481) | pub async fn get_workspace_invitations_for_user( function add_workspace_members_db_only (line 499) | pub async fn add_workspace_members_db_only( function leave_workspace (line 523) | pub async fn leave_workspace( function remove_workspace_members (line 533) | pub async fn remove_workspace_members( function get_workspace_members_exclude_guest (line 571) | pub async fn get_workspace_members_exclude_guest( function get_workspace_member_optional (line 578) | pub async fn get_workspace_member_optional( function get_workspace_member (line 587) | pub async fn get_workspace_member( function get_workspace_owner (line 598) | pub async fn get_workspace_owner( function get_workspace_member_by_uuid (line 605) | pub async fn get_workspace_member_by_uuid( function update_workspace_member (line 613) | pub async fn update_workspace_member( function get_workspace_document_total_bytes (line 630) | pub async fn get_workspace_document_total_bytes( function get_workspace_settings (line 640) | pub async fn get_workspace_settings( function update_workspace_settings (line 648) | pub async fn update_workspace_settings( function check_if_user_is_allowed_to_delete_comment (line 671) | async fn check_if_user_is_allowed_to_delete_comment( function create_upload_task (line 688) | pub async fn create_upload_task( function num_pending_task (line 721) | pub async fn num_pending_task(uid: i64, pg_pool: &PgPool) -> Result... function delete_view_from_trash (line 1022) | async fn delete_view_from_trash( function delete_all_views_from_trash (line 1042) | async fn delete_all_views_from_trash(folder: &mut Folder, uid: i64) -> R... function create_document_page (line 1066) | async fn create_document_page( function create_grid_page (line 1124) | async fn create_grid_page( function create_board_page (line 1149) | async fn create_board_page( function create_calendar_page (line 1175) | async fn create_calendar_page( function create_database_page (line 1201) | async fn create_database_page( function get_rag_ids (line 1297) | async fn get_rag_ids(folder: &Folder, parent_view_id: &Uuid, uid: i64) -... function create_chat_page (line 1320) | async fn create_chat_page( function move_page (line 1361) | pub async fn move_page( function reorder_favorite_page (line 1390) | pub async fn reorder_favorite_page( function move_page_to_trash (line 1411) | pub async fn move_page_to_trash( function restore_page_from_trash (line 1434) | pub async fn restore_page_from_trash( function add_recent_pages (line 1453) | pub async fn add_recent_pages( function restore_all_pages_from_trash (line 1472) | pub async fn restore_all_pages_from_trash( function delete_trash (line 1490) | pub async fn delete_trash( function delete_all_pages_from_trash (line 1509) | pub async fn delete_all_pages_from_trash( function update_page (line 1528) | pub async fn update_page( function update_page_name (line 1553) | pub async fn update_page_name( function update_page_icon (line 1574) | pub async fn update_page_icon( function update_page_extra (line 1595) | pub async fn update_page_extra( function favorite_page (line 1617) | pub async fn favorite_page( function replace_invalid_url_chars (line 1642) | fn replace_invalid_url_chars(input: &str) -> String { function generate_publish_name (line 1646) | fn generate_publish_name(view_id: &str, name: &str) -> String { function publish_page (line 1663) | pub async fn publish_page( function generate_publish_data_for_document (line 1747) | async fn generate_publish_data_for_document( function generate_publish_data_for_database (line 1765) | async fn generate_publish_data_for_database( function unpublish_page (line 1850) | pub async fn unpublish_page( function get_page_view_collab (line 1861) | pub async fn get_page_view_collab( function get_page_view_collab_for_orphaned_view (line 1888) | async fn get_page_view_collab_for_orphaned_view( function get_page_view_collab_for_view_with_parent (line 1936) | async fn get_page_view_collab_for_view_with_parent( function get_page_collab_data_for_database (line 2010) | async fn get_page_collab_data_for_database( function get_page_collab_data_for_document (line 2132) | async fn get_page_collab_data_for_document( function create_database_view (line 2155) | pub async fn create_database_view( function update_collab_data_with_timeout (line 2310) | async fn update_collab_data_with_timeout( function update_page_collab_data (line 2353) | pub async fn update_page_collab_data( function update_workspace_folder_data (line 2375) | pub async fn update_workspace_folder_data( function update_workspace_database_data (line 2396) | pub async fn update_workspace_database_data( function update_database_data (line 2418) | pub async fn update_database_data( function update_page_mention (line 2439) | pub async fn update_page_mention( function list_page_mentionable_persons_with_access (line 2450) | pub async fn list_page_mentionable_persons_with_access( function get_all_user_uuids_with_access_to_page (line 2478) | pub async fn get_all_user_uuids_with_access_to_page( function get_all_user_uuids_with_guest_access_to_page (line 2510) | async fn get_all_user_uuids_with_guest_access_to_page( FILE: src/biz/workspace/publish.rs function check_workspace_owner_or_publisher (line 44) | async fn check_workspace_owner_or_publisher( function check_collab_publish_name (line 64) | fn check_collab_publish_name(publish_name: &str) -> Result<(), AppError> { function get_collab_s3_key (line 85) | fn get_collab_s3_key(workspace_id: &Uuid, view_id: &Uuid) -> String { function set_workspace_namespace (line 89) | pub async fn set_workspace_namespace( function set_workspace_default_publish_view (line 117) | pub async fn set_workspace_default_publish_view( function unset_workspace_default_publish_view (line 126) | pub async fn unset_workspace_default_publish_view( function get_workspace_default_publish_view_info (line 134) | pub async fn get_workspace_default_publish_view_info( function get_workspace_default_publish_view_info_meta (line 151) | pub async fn get_workspace_default_publish_view_info_meta( function get_workspace_publish_namespace (line 178) | pub async fn get_workspace_publish_namespace( function list_collab_publish_info (line 203) | pub async fn list_collab_publish_info( function check_workspace_namespace (line 241) | async fn check_workspace_namespace(new_namespace: &str) -> Result<(), Ap... type PublishedCollabStore (line 254) | pub trait PublishedCollabStore: Sync + Send + 'static { method publish_collabs (line 255) | async fn publish_collabs( method get_collab_with_view_metadata_by_view_id (line 262) | async fn get_collab_with_view_metadata_by_view_id( method get_collab_metadata (line 267) | async fn get_collab_metadata( method list_collab_publish_info (line 273) | async fn list_collab_publish_info( method get_collab_publish_info (line 278) | async fn get_collab_publish_info(&self, view_id: &Uuid) -> Result Result Result, pg_pool: PgPool) -> S... type PublishedCollabS3StoreWithPostgresFallback (line 421) | pub struct PublishedCollabS3StoreWithPostgresFallback { method new (line 428) | pub fn new( function patch_collabs (line 612) | async fn patch_collabs( function check_publish_name_already_exists (line 637) | async fn check_publish_name_already_exists( function check_view_id_publish_name_conflict (line 653) | async fn check_view_id_publish_name_conflict( FILE: src/biz/workspace/publish_dup.rs function duplicate_published_collab_to_workspace (line 52) | pub async fn duplicate_published_collab_to_workspace( type PublishCollabDuplicator (line 80) | pub struct PublishCollabDuplicator { method new (line 133) | pub fn new( method duplicate (line 165) | async fn duplicate( method deep_copy (line 349) | async fn deep_copy( method deep_copy_doc (line 406) | async fn deep_copy_doc( method deep_copy_doc_pages (line 446) | async fn deep_copy_doc_pages( method deep_copy_view (line 503) | async fn deep_copy_view( method deep_copy_doc_databases (line 535) | async fn deep_copy_doc_databases( method deep_copy_inline_database_in_doc (line 607) | async fn deep_copy_inline_database_in_doc( method deep_copy_ref_database_in_doc (line 635) | async fn deep_copy_ref_database_in_doc( method deep_copy_database (line 683) | async fn deep_copy_database( method deep_copy_database_view (line 973) | async fn deep_copy_database_view( method new_folder_view (line 1068) | fn new_folder_view( method get_published_data_for_view_id (line 1091) | async fn get_published_data_for_view_id( function deserialize_publish_database_data (line 117) | fn deserialize_publish_database_data( function view_info_by_view_id (line 1116) | fn view_info_by_view_id(meta: &PublishViewMetaData) -> HashMap, view_infos... FILE: src/biz/workspace/quick_note.rs function create_quick_note (line 12) | pub async fn create_quick_note( function update_quick_note (line 31) | pub async fn update_quick_note( function delete_quick_note (line 39) | pub async fn delete_quick_note(pg_pool: &PgPool, quick_note_id: Uuid) ->... function list_quick_notes (line 43) | pub async fn list_quick_notes( FILE: src/config/config.rs type Config (line 15) | pub struct Config { type AccessControlSetting (line 38) | pub struct AccessControlSetting { type AppleOAuthSetting (line 46) | pub struct AppleOAuthSetting { type CasbinSetting (line 52) | pub struct CasbinSetting { type S3Setting (line 57) | pub struct S3Setting { type GoTrueSetting (line 69) | pub struct GoTrueSetting { type AppFlowyAISetting (line 76) | pub struct AppFlowyAISetting { method url (line 82) | pub fn url(&self) -> String { type ApplicationSetting (line 100) | pub struct ApplicationSetting { type DatabaseSetting (line 106) | pub struct DatabaseSetting { method pg_connect_options (line 128) | pub fn pg_connect_options(&self) -> PgConnectOptions { method fmt (line 117) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type CollabSetting (line 140) | pub struct CollabSetting { type PublishedCollabStorageBackend (line 149) | pub enum PublishedCollabStorageBackend { type Error (line 160) | type Error = anyhow::Error; method try_from (line 162) | fn try_from(value: &str) -> Result { type PublishedCollabSetting (line 155) | pub struct PublishedCollabSetting { type NotificationSetting (line 172) | pub struct NotificationSetting { function get_configuration (line 179) | pub fn get_configuration() -> Result { type Environment (line 298) | pub enum Environment { method as_str (line 304) | pub fn as_str(&self) -> &'static str { type Err (line 313) | type Err = anyhow::Error; method from_str (line 315) | fn from_str(s: &str) -> Result { type WebsocketSetting (line 328) | pub struct WebsocketSetting { FILE: src/domain/compression.rs constant X_COMPRESSION_TYPE (line 5) | pub const X_COMPRESSION_TYPE: &str = "X-Compression-Type"; constant X_COMPRESSION_BUFFER_SIZE (line 7) | pub const X_COMPRESSION_BUFFER_SIZE: &str = "X-Compression-Buffer-Size"; type CompressionType (line 8) | pub enum CompressionType { method buffer_size (line 13) | pub fn buffer_size(&self) -> usize { function compress (line 20) | pub async fn compress( function decompress (line 37) | pub fn decompress(data: Vec, buffer_size: usize) -> Result, ... function blocking_decompress (line 48) | pub async fn blocking_decompress(data: Vec, buffer_size: usize) -> R... FILE: src/mailer.rs constant WORKSPACE_INVITE_TEMPLATE_NAME (line 4) | pub const WORKSPACE_INVITE_TEMPLATE_NAME: &str = "workspace_invite"; constant WORKSPACE_ACCESS_REQUEST_TEMPLATE_NAME (line 5) | pub const WORKSPACE_ACCESS_REQUEST_TEMPLATE_NAME: &str = "workspace_acce... constant WORKSPACE_ACCESS_REQUEST_APPROVED_NOTIFICATION_TEMPLATE_NAME (line 6) | pub const WORKSPACE_ACCESS_REQUEST_APPROVED_NOTIFICATION_TEMPLATE_NAME: ... constant PAGE_MENTION_NOTIFICATION_TEMPLATE_NAME (line 8) | pub const PAGE_MENTION_NOTIFICATION_TEMPLATE_NAME: &str = "page_mention_... type AFCloudMailer (line 11) | pub struct AFCloudMailer(Mailer); method new (line 13) | pub async fn new(mut mailer: Mailer) -> Result { method send_workspace_invite (line 18) | pub async fn send_workspace_invite( method send_workspace_access_request (line 48) | pub async fn send_workspace_access_request( method send_workspace_access_request_approval_notification (line 70) | pub async fn send_workspace_access_request_approval_notification( method send_page_mention_notification (line 89) | pub async fn send_page_mention_notification( function register_mailer (line 112) | async fn register_mailer(mailer: &mut Mailer) -> Result<(), anyhow::Erro... type WorkspaceInviteMailerParam (line 149) | pub struct WorkspaceInviteMailerParam { type WorkspaceAccessRequestMailerParam (line 159) | pub struct WorkspaceAccessRequestMailerParam { type WorkspaceAccessRequestApprovedMailerParam (line 169) | pub struct WorkspaceAccessRequestApprovedMailerParam { type PageMentionNotificationMailerParam (line 177) | pub struct PageMentionNotificationMailerParam { FILE: src/main.rs function main (line 6) | async fn main() -> anyhow::Result<()> { FILE: src/middleware/metrics_mw.rs type MetricsMiddleware (line 12) | pub struct MetricsMiddleware; type Response (line 20) | type Response = ServiceResponse; type Error (line 21) | type Error = Error; type Transform (line 22) | type Transform = MetricsMiddlewareService; type InitError (line 23) | type InitError = (); type Future (line 24) | type Future = Ready>; method new_transform (line 26) | fn new_transform(&self, service: S) -> Self::Future { type MetricsMiddlewareService (line 31) | pub struct MetricsMiddlewareService { type Response (line 41) | type Response = ServiceResponse; type Error (line 42) | type Error = Error; type Future (line 43) | type Future = LocalBoxFuture<'static, Result>; function call (line 47) | fn call(&self, req: ServiceRequest) -> Self::Future { FILE: src/middleware/request_id.rs constant X_REQUEST_ID (line 10) | const X_REQUEST_ID: &str = "x-request-id"; type RequestIdMiddleware (line 11) | pub struct RequestIdMiddleware; type Response (line 19) | type Response = ServiceResponse; type Error (line 20) | type Error = actix_web::Error; type Transform (line 21) | type Transform = RequestIdMiddlewareService; type InitError (line 22) | type InitError = (); type Future (line 23) | type Future = Ready>; method new_transform (line 25) | fn new_transform(&self, service: S) -> Self::Future { type RequestIdMiddlewareService (line 30) | pub struct RequestIdMiddlewareService { type Response (line 40) | type Response = ServiceResponse; type Error (line 41) | type Error = actix_web::Error; type Future (line 42) | type Future = LocalBoxFuture<'static, Result>; function call (line 46) | fn call(&self, mut req: ServiceRequest) -> Self::Future { function get_request_id (line 88) | pub fn get_request_id(req: &ServiceRequest) -> Option { function get_client_info (line 102) | fn get_client_info(req: &ServiceRequest) -> ClientInfo { type ClientInfo (line 120) | struct ClientInfo<'a> { function skip_request_id (line 127) | fn skip_request_id(req: &ServiceRequest) -> bool { FILE: src/state.rs type RedisConnectionManager (line 38) | pub type RedisConnectionManager = redis::aio::ConnectionManager; type AppState (line 40) | pub struct AppState { method load_users (line 67) | pub async fn load_users(_pool: &PgPool) { method next_user_id (line 71) | pub async fn next_user_id(&self) -> i64 { type AuthenticateUser (line 76) | pub struct AuthenticateUser { constant EXPIRED_DURATION_DAYS (line 80) | pub const EXPIRED_DURATION_DAYS: i64 = 30; type UserCache (line 83) | pub struct UserCache { method new (line 90) | pub async fn new(pool: PgPool) -> Self { method get_user_uid (line 112) | pub async fn get_user_uid(&self, uuid: &Uuid) -> Result { type AppMetrics (line 125) | pub struct AppMetrics { method new (line 146) | pub fn new() -> Self { method default (line 140) | fn default() -> Self { type GoTrueAdmin (line 173) | pub struct GoTrueAdmin { method new (line 180) | pub fn new(jwt_secret: String, service_role: String, gotrue_client: go... method token (line 188) | pub async fn token(&self) -> Result { FILE: src/telemetry.rs function init_subscriber (line 10) | pub fn init_subscriber(app_env: &Environment) { type CustomTime (line 45) | struct CustomTime; method format_time (line 47) | fn format_time(&self, w: &mut Writer<'_>) -> std::fmt::Result { function spawn_blocking_with_tracing (line 52) | pub fn spawn_blocking_with_tracing(f: F) -> JoinHandle FILE: tests/ai_test/chat_test.rs function update_chat_settings_test (line 18) | async fn update_chat_settings_test() { function create_chat_and_create_messages_test (line 103) | async fn create_chat_and_create_messages_test() { function generate_chat_message_answer_test (line 192) | async fn generate_chat_message_answer_test() { function get_format_question_message_test (line 261) | async fn get_format_question_message_test() { function get_text_with_image_message_test (line 311) | async fn get_text_with_image_message_test() { function get_question_message_test (line 408) | async fn get_question_message_test() { function get_model_list_test (line 466) | async fn get_model_list_test() { function collect_answer (line 483) | async fn collect_answer( FILE: tests/ai_test/chat_with_selected_doc_test.rs type TestDoc (line 14) | struct TestDoc { method new (line 20) | fn new(contents: Vec<&'static str>) -> Self { function chat_with_multiple_selected_source_test (line 30) | async fn chat_with_multiple_selected_source_test() { function chat_with_selected_source_override_test (line 196) | async fn chat_with_selected_source_override_test() { function ask_question (line 300) | async fn ask_question( FILE: tests/ai_test/completion_test.rs function generate_chat_message_answer_test (line 5) | async fn generate_chat_message_answer_test() { FILE: tests/ai_test/summarize_row.rs function summarize_row_test (line 6) | async fn summarize_row_test() { FILE: tests/ai_test/summary_search_test.rs function chat_with_search_result_simple (line 8) | async fn chat_with_search_result_simple() { function summary_search_result (line 46) | async fn summary_search_result() { FILE: tests/ai_test/util.rs function read_text_from_asset (line 6) | pub(crate) fn read_text_from_asset(file_name: &str) -> String { function extract_image_url (line 13) | pub fn extract_image_url(text: &str) -> Option { FILE: tests/collab/awareness_test.rs function viewing_document_editing_users_test (line 10) | async fn viewing_document_editing_users_test() { function assert_num_connected_client_within_secs (line 66) | async fn assert_num_connected_client_within_secs( FILE: tests/collab/collab_curd_test.rs constant WORKSPACE_ID (line 21) | const WORKSPACE_ID: Uuid = Uuid::from_u128(70700); function get_collab_response_compatible_test (line 24) | async fn get_collab_response_compatible_test() { function batch_insert_collab_with_empty_payload_test (line 41) | async fn batch_insert_collab_with_empty_payload_test() { function create_collab_params_compatibility_serde_test (line 54) | async fn create_collab_params_compatibility_serde_test() { type InsertCollabParams (line 85) | struct InsertCollabParams { function create_collab_compatibility_with_json_params_test (line 93) | async fn create_collab_compatibility_with_json_params_test() { function batch_insert_document_collab_test (line 144) | async fn batch_insert_document_collab_test() { type OldCreateCollabParams (line 208) | pub struct OldCreateCollabParams { FILE: tests/collab/collab_embedding_test.rs function query_collab_embedding_after_create_test (line 8) | async fn query_collab_embedding_after_create_test() { function document_full_sync_then_search_test (line 41) | async fn document_full_sync_then_search_test() { FILE: tests/collab/database_crud.rs function database_row_upsert_with_doc (line 9) | async fn database_row_upsert_with_doc() { function database_row_upsert (line 72) | async fn database_row_upsert() { function database_fields_crud (line 150) | async fn database_fields_crud() { function database_fields_unsupported_field_type (line 270) | async fn database_fields_unsupported_field_type() { function database_insert_row_with_doc (line 319) | async fn database_insert_row_with_doc() { FILE: tests/collab/missing_update_test.rs function client_apply_update_find_missing_update_test (line 11) | async fn client_apply_update_find_missing_update_test() { function client_ping_find_missing_update_test (line 35) | async fn client_ping_find_missing_update_test() { function make_clients (line 48) | async fn make_clients() -> (TestClient, TestClient, Uuid, Value) { FILE: tests/collab/multi_devices_edit.rs function sync_collab_content_after_reconnect_test (line 10) | async fn sync_collab_content_after_reconnect_test() { function same_client_connect_then_edit_multiple_time_test (line 64) | async fn same_client_connect_then_edit_multiple_time_test() { function same_client_with_diff_devices_edit_same_collab_test (line 124) | async fn same_client_with_diff_devices_edit_same_collab_test() { function same_client_with_diff_devices_edit_diff_collab_test (line 183) | async fn same_client_with_diff_devices_edit_diff_collab_test() { function edit_document_with_both_clients_offline_then_online_sync_test (line 245) | async fn edit_document_with_both_clients_offline_then_online_sync_test() { function sync_new_documents_created_when_offline_test (line 309) | async fn sync_new_documents_created_when_offline_test() { FILE: tests/collab/permission_test.rs function recv_updates_without_permission_test (line 20) | async fn recv_updates_without_permission_test() { function edit_collab_with_readonly_permission_test (line 158) | async fn edit_collab_with_readonly_permission_test() { function edit_collab_with_read_and_write_permission_test (line 204) | async fn edit_collab_with_read_and_write_permission_test() { function edit_collab_with_full_access_permission_test (line 251) | async fn edit_collab_with_full_access_permission_test() { function edit_collab_with_full_access_then_readonly_permission (line 296) | async fn edit_collab_with_full_access_then_readonly_permission() { function multiple_user_with_read_and_write_permission_edit_same_collab_test (line 363) | async fn multiple_user_with_read_and_write_permission_edit_same_collab_t... function multiple_user_with_read_only_permission_edit_same_collab_test (line 441) | async fn multiple_user_with_read_only_permission_edit_same_collab_test() { FILE: tests/collab/single_device_edit.rs function realtime_write_single_collab_test (line 19) | async fn realtime_write_single_collab_test() { function collab_write_small_chunk_of_data_test (line 57) | async fn collab_write_small_chunk_of_data_test() { function collab_write_big_chunk_of_data_test (line 92) | async fn collab_write_big_chunk_of_data_test() { function write_big_chunk_data_init_sync_test (line 123) | async fn write_big_chunk_data_init_sync_test() { function realtime_write_multiple_collab_test (line 156) | async fn realtime_write_multiple_collab_test() { function second_connect_override_first_connect_test (line 202) | async fn second_connect_override_first_connect_test() { function same_device_multiple_connect_in_order_test (line 260) | async fn same_device_multiple_connect_in_order_test() { function two_direction_peer_sync_test (line 297) | async fn two_direction_peer_sync_test() { function multiple_collab_edit_test (line 349) | async fn multiple_collab_edit_test() { function simulate_multiple_user_edit_collab_test (line 407) | async fn simulate_multiple_user_edit_collab_test() { function post_realtime_message_test (line 455) | async fn post_realtime_message_test() { function post_realtime_message_without_ws_connect_test (line 505) | async fn post_realtime_message_without_ws_connect_test() { function post_realtime_message_with_ws_connect_test (line 531) | async fn post_realtime_message_with_ws_connect_test() { function simulate_5_offline_user_connect_and_then_sync_document_test (line 545) | async fn simulate_5_offline_user_connect_and_then_sync_document_test() { function offline_and_then_sync_through_http_request (line 591) | async fn offline_and_then_sync_through_http_request() { function insert_text_through_http_post_request (line 698) | async fn insert_text_through_http_post_request() { FILE: tests/collab/storage_test.rs function success_insert_collab_test (line 22) | async fn success_insert_collab_test() { function success_batch_get_collab_test (line 51) | async fn success_batch_get_collab_test() { function success_part_batch_get_collab_test (line 101) | async fn success_part_batch_get_collab_test() { function success_delete_collab_test (line 162) | async fn success_delete_collab_test() { function batch_get_collab_filters_deleted_records_test (line 218) | async fn batch_get_collab_filters_deleted_records_test() { function fail_insert_collab_with_empty_payload_test (line 299) | async fn fail_insert_collab_with_empty_payload_test() { function fail_insert_collab_with_invalid_workspace_id_test (line 316) | async fn fail_insert_collab_with_invalid_workspace_id_test() { function collab_mem_cache_read_write_test (line 337) | async fn collab_mem_cache_read_write_test() { function collab_mem_cache_insert_override_test (line 360) | async fn collab_mem_cache_insert_override_test() { function insert_empty_data_test (line 418) | async fn insert_empty_data_test() { function insert_invalid_data_test (line 448) | async fn insert_invalid_data_test() { function insert_folder_data_success_test (line 488) | async fn insert_folder_data_success_test() { function pool (line 515) | fn pool() -> Arc { FILE: tests/collab/stress_test.rs function stress_test_run_multiple_text_edits (line 14) | async fn stress_test_run_multiple_text_edits() { FILE: tests/collab/util.rs function generate_random_bytes (line 19) | pub fn generate_random_bytes(size: usize) -> Vec { function generate_random_string (line 29) | pub fn generate_random_string(len: usize) -> String { function make_collab_with_key_value (line 38) | pub fn make_collab_with_key_value(object_id: &Uuid, key: &str, value: St... type TestDocumentEditor (line 49) | pub struct TestDocumentEditor { method clear (line 54) | pub(crate) fn clear(&mut self) { method insert_paragraphs (line 62) | pub(crate) fn insert_paragraphs(&mut self, paragraphs: Vec) { method encode_collab (line 89) | pub fn encode_collab(&self) -> EncodedCollab { function empty_document_editor (line 94) | pub fn empty_document_editor(object_id: &Uuid) -> TestDocumentEditor { function alex_software_engineer_story (line 109) | pub fn alex_software_engineer_story() -> Vec<&'static str> { function snowboarding_in_japan_plan (line 122) | pub fn snowboarding_in_japan_plan() -> Vec<&'static str> { function alex_banker_story (line 137) | pub fn alex_banker_story() -> Vec<&'static str> { function test_encode_collab_v1 (line 153) | pub fn test_encode_collab_v1(object_id: &Uuid, key: &str, value: &str) -... function redis_client (line 162) | pub async fn redis_client() -> redis::Client { function redis_connection_manager (line 169) | pub async fn redis_connection_manager() -> ConnectionManager { type TestPatch (line 199) | pub struct TestPatch(pub usize, pub usize, pub String); type TestTxn (line 202) | pub struct TestTxn { type TestScenario (line 208) | pub struct TestScenario { method open (line 227) | pub fn open(fpath: &str) -> TestScenario { method execute (line 248) | pub async fn execute(&self, collab: CollabRef, step_count: usize) -> S... FILE: tests/collab/web_edit.rs function web_and_native_app_edit_same_collab_test (line 10) | async fn web_and_native_app_edit_same_collab_test() { FILE: tests/collab_history/document_history.rs function collab_history_and_snapshot_test (line 13) | async fn collab_history_and_snapshot_test() { function get_snapshot_collab (line 105) | pub fn get_snapshot_collab(collab: &Collab, snapshot: &Snapshot, object_... FILE: tests/file_test/delete_dir_test.rs function delete_workspace_resource_test (line 10) | async fn delete_workspace_resource_test() { function delete_workspace_sub_folder_resource_test (line 25) | async fn delete_workspace_sub_folder_resource_test() { FILE: tests/file_test/mod.rs type TestBucket (line 27) | pub struct TestBucket(pub AwsS3BucketClientImpl); method new (line 38) | pub async fn new() -> Self { type Target (line 30) | type Target = AwsS3BucketClientImpl; method deref (line 32) | fn deref(&self) -> &Self::Target { function get_env_var (line 59) | fn get_env_var<'default>(key: &str, default: &'default str) -> Cow<'defa... FILE: tests/file_test/multiple_part_test.rs function multiple_part_put_and_get_test (line 16) | async fn multiple_part_put_and_get_test() { function single_part_put_and_get_test (line 84) | async fn single_part_put_and_get_test() { function empty_part_upload_test (line 149) | async fn empty_part_upload_test() { function multiple_part_upload_test (line 177) | async fn multiple_part_upload_test() { function multiple_part_upload_empty_data_test (line 198) | async fn multiple_part_upload_empty_data_test() { function perform_upload_test (line 204) | async fn perform_upload_test( function invalid_test (line 306) | async fn invalid_test() { function multiple_level_dir_upload_file_test (line 364) | async fn multiple_level_dir_upload_file_test() { FILE: tests/file_test/put_and_get.rs function get_but_not_exists (line 10) | async fn get_but_not_exists() { function put_and_get (line 30) | async fn put_and_get() { function put_and_put_and_get (line 47) | async fn put_and_put_and_get() { function put_delete_get (line 73) | async fn put_delete_get() { function put_and_delete_workspace (line 89) | async fn put_and_delete_workspace() { function simulate_30_put_blob_request_test (line 122) | async fn simulate_30_put_blob_request_test() { FILE: tests/file_test/usage.rs function workspace_usage_put_blob_test (line 4) | async fn workspace_usage_put_blob_test() { function workspace_usage_put_and_then_delete_blob_test (line 21) | async fn workspace_usage_put_and_then_delete_blob_test() { FILE: tests/gotrue/admin.rs function admin_user_create_list_edit_delete (line 9) | async fn admin_user_create_list_edit_delete() { function admin_generate_link_and_user_sign_in_and_invite (line 109) | async fn admin_generate_link_and_user_sign_in_and_invite() { FILE: tests/gotrue/health.rs function gotrue_health (line 5) | async fn gotrue_health() { FILE: tests/gotrue/settings.rs function gotrue_settings (line 9) | async fn gotrue_settings() { function admin_user_create (line 16) | async fn admin_user_create() { FILE: tests/search/document_search.rs function test_embedding_when_create_document (line 21) | async fn test_embedding_when_create_document() { function test_document_indexing_and_search (line 124) | async fn test_document_indexing_and_search() { function create_document_collab (line 174) | async fn create_document_collab(document_id: &str, file_name: &str) -> D... function add_document_collab (line 182) | async fn add_document_collab( function create_chat_and_ask_question (line 216) | async fn create_chat_and_ask_question( function calculate_similarity_and_assert (line 252) | async fn calculate_similarity_and_assert( FILE: tests/server_info/info.rs function test_get_server_info (line 4) | async fn test_get_server_info() { FILE: tests/sql_test/chat_test.rs function chat_crud_test (line 16) | async fn chat_crud_test(pool: PgPool) { function chat_message_crud_test (line 69) | async fn chat_message_crud_test(pool: PgPool) { function chat_setting_test (line 192) | async fn chat_setting_test(pool: PgPool) { FILE: tests/sql_test/collab_embed_test.rs constant TEST_CHUNKS (line 9) | const TEST_CHUNKS: [&str; 6] = [ function insert_collab_embedding_fragment_test (line 19) | async fn insert_collab_embedding_fragment_test(pool: PgPool) { function test_embed_over_context_size (line 84) | async fn test_embed_over_context_size(pool: PgPool) { FILE: tests/sql_test/history_test.rs function insert_snapshot_test (line 11) | async fn insert_snapshot_test(pool: PgPool) { FILE: tests/sql_test/util.rs function setup_db (line 16) | pub async fn setup_db(pool: &PgPool) -> anyhow::Result<()> { function insert_auth_user (line 40) | pub async fn insert_auth_user(pool: &PgPool, user_uuid: Uuid) -> anyhow:... function create_test_user (line 57) | pub async fn create_test_user( function create_test_collab_document (line 72) | pub async fn create_test_collab_document( function upsert_test_chunks (line 93) | pub async fn upsert_test_chunks( function select_all_fragments (line 106) | pub async fn select_all_fragments(pg: &PgPool, object_id: &Uuid) -> Vec<... type TestUser (line 111) | pub struct TestUser { function generate_random_bytes (line 116) | pub fn generate_random_bytes(size: usize) -> Vec { FILE: tests/sql_test/workspace_test.rs function insert_collab_sql_test (line 13) | async fn insert_collab_sql_test(pool: PgPool) { function insert_bulk_collab_sql_test (line 70) | async fn insert_bulk_collab_sql_test(pool: PgPool) { function test_bulk_insert_empty_collab_list (line 140) | async fn test_bulk_insert_empty_collab_list(pool: PgPool) { function test_bulk_insert_duplicate_oid_partition_key (line 162) | async fn test_bulk_insert_duplicate_oid_partition_key(pool: PgPool) { function test_batch_insert_comparison (line 203) | async fn test_batch_insert_comparison(pool: PgPool) { FILE: tests/user/delete.rs function user_delete_self (line 6) | async fn user_delete_self() { function user_delete_self_shared_workspace (line 40) | async fn user_delete_self_shared_workspace() { function admin_delete_create_same_user_hard (line 57) | async fn admin_delete_create_same_user_hard() { FILE: tests/user/image.rs function upload_and_retrieve_image_asset (line 4) | async fn upload_and_retrieve_image_asset() { FILE: tests/user/refresh.rs function refresh_success (line 7) | async fn refresh_success() { function concurrent_refresh (line 17) | async fn concurrent_refresh() { function refresh_trigger (line 42) | async fn refresh_trigger() { FILE: tests/user/sign_in.rs function sign_in_unknown_user (line 5) | async fn sign_in_unknown_user() { function sign_in_wrong_password (line 15) | async fn sign_in_wrong_password() { function sign_in_unconfirmed_email (line 32) | async fn sign_in_unconfirmed_email() { function sign_in_success (line 45) | async fn sign_in_success() { function sign_in_with_invalid_url (line 88) | async fn sign_in_with_invalid_url() { function sign_in_with_url (line 98) | async fn sign_in_with_url() { function sign_in_with_magic_link (line 108) | async fn sign_in_with_magic_link() { FILE: tests/user/sign_out.rs function sign_out_but_not_sign_in (line 4) | async fn sign_out_but_not_sign_in() { function sign_out_after_sign_in (line 11) | async fn sign_out_after_sign_in() { FILE: tests/user/sign_up.rs function sign_up_success (line 7) | async fn sign_up_success() { function sign_up_invalid_email (line 15) | async fn sign_up_invalid_email() { function sign_up_invalid_password (line 30) | async fn sign_up_invalid_password() { function sign_up_but_existing_user (line 43) | async fn sign_up_but_existing_user() { function sign_up_oauth_not_available (line 49) | async fn sign_up_oauth_not_available() { function concurrent_user_sign_up_test (line 65) | async fn concurrent_user_sign_up_test() { FILE: tests/user/update.rs function update_but_not_logged_in (line 10) | async fn update_but_not_logged_in() { function update_password_same_password (line 21) | async fn update_password_same_password() { function update_password_and_revert (line 42) | async fn update_password_and_revert() { function update_user_name (line 66) | async fn update_user_name() { function update_user_email (line 80) | async fn update_user_email() { function update_user_metadata (line 95) | async fn update_user_metadata() { function user_metadata_override (line 114) | async fn user_metadata_override() { function user_empty_metadata_override (line 139) | async fn user_empty_metadata_override() { function user_change_notify_test (line 161) | async fn user_change_notify_test() { function user_change_notify_test_v2 (line 191) | async fn user_change_notify_test_v2() { FILE: tests/user/user_awareness_test.rs function edit_workspace_without_permission (line 4) | async fn edit_workspace_without_permission() { FILE: tests/websocket/actor_test.rs function test_handle_message (line 13) | async fn test_handle_message() { function server_mailbox_full_test (line 40) | async fn server_mailbox_full_test() { function client_rate_limit_hit_test (line 83) | async fn client_rate_limit_hit_test() { type MockRealtimeServer (line 135) | struct MockRealtimeServer { method new (line 140) | fn new(mailbox_size: usize) -> Self { type Result (line 154) | type Result = HandlerResult; method handle (line 156) | fn handle(&mut self, _msg: ClientWebSocketMessage, _ctx: &mut Self::Co... type Result (line 162) | type Result = anyhow::Result<(), RealtimeError>; method handle (line 164) | fn handle(&mut self, _msg: Connect, _ctx: &mut Self::Context) -> Self:... type Result (line 170) | type Result = anyhow::Result<(), RealtimeError>; method handle (line 172) | fn handle(&mut self, _msg: Disconnect, _ctx: &mut Self::Context) -> Se... type Context (line 146) | type Context = Context; method started (line 148) | fn started(&mut self, ctx: &mut Self::Context) { FILE: tests/websocket/conn_test.rs function realtime_connect_test (line 8) | async fn realtime_connect_test() { function realtime_connect_after_token_exp_test (line 33) | async fn realtime_connect_after_token_exp_test() { function realtime_disconnect_test (line 65) | async fn realtime_disconnect_test() { FILE: tests/workspace/access_request.rs function access_request_test (line 7) | async fn access_request_test() { FILE: tests/workspace/default_user_workspace.rs function get_document_collab_from_remote (line 10) | async fn get_document_collab_from_remote( function get_user_default_workspace_test (line 37) | async fn get_user_default_workspace_test() { FILE: tests/workspace/edit_workspace.rs function init_sync_workspace_with_member_permission (line 11) | async fn init_sync_workspace_with_member_permission() { function edit_workspace_with_guest_permission (line 50) | async fn edit_workspace_with_guest_permission() { FILE: tests/workspace/import_test.rs function import_blog_post_test (line 13) | async fn import_blog_post_test() { function import_project_and_task_zip_test (line 91) | async fn import_project_and_task_zip_test() { function imported_workspace_do_not_become_latest_visit_workspace_test (line 165) | async fn imported_workspace_do_not_become_latest_visit_workspace_test() { function upload_file (line 192) | async fn upload_file( function import_notion_zip_until_complete (line 216) | async fn import_notion_zip_until_complete(name: &str) -> (TestClient, Uu... function wait_until_num_import_task_complete (line 251) | async fn wait_until_num_import_task_complete(client: &TestClient, num: u... FILE: tests/workspace/invitation_crud.rs function invite_workspace_crud (line 8) | async fn invite_workspace_crud() { function invite_wait_email_sending_success (line 157) | async fn invite_wait_email_sending_success() { FILE: tests/workspace/join_workspace.rs function join_workspace_by_invite_code (line 5) | async fn join_workspace_by_invite_code() { FILE: tests/workspace/member_crud.rs function get_workspace_owner_after_sign_up_test (line 8) | async fn get_workspace_owner_after_sign_up_test() { function workspace_members_through_invite_or_direct_add (line 22) | async fn workspace_members_through_invite_or_direct_add() { function add_workspace_members_not_enough_permission (line 47) | async fn add_workspace_members_not_enough_permission() { function add_duplicate_workspace_members (line 69) | async fn add_duplicate_workspace_members() { function add_not_exist_workspace_members (line 109) | async fn add_not_exist_workspace_members() { function update_workspace_member_role_not_enough_permission (line 144) | async fn update_workspace_member_role_not_enough_permission() { function update_workspace_member_role_from_guest_to_member (line 163) | async fn update_workspace_member_role_from_guest_to_member() { function workspace_add_member (line 198) | async fn workspace_add_member() { function add_workspace_member_and_owner_then_delete_all (line 239) | async fn add_workspace_member_and_owner_then_delete_all() { function workspace_owner_remove_self_from_workspace (line 283) | async fn workspace_owner_remove_self_from_workspace() { function workspace_second_owner_can_not_delete_origin_owner (line 300) | async fn workspace_second_owner_can_not_delete_origin_owner() { function user_workspace_info (line 316) | async fn user_workspace_info() { function get_user_workspace_info_after_open_workspace (line 334) | async fn get_user_workspace_info_after_open_workspace() { function member_leave_workspace_test (line 354) | async fn member_leave_workspace_test() { function owner_leave_workspace_test (line 372) | async fn owner_leave_workspace_test() { function add_workspace_member_and_then_member_get_member_list (line 387) | async fn add_workspace_member_and_then_member_get_member_list() { function workspace_member_through_user_id (line 416) | async fn workspace_member_through_user_id() { FILE: tests/workspace/page_view.rs function get_latest_folder (line 21) | async fn get_latest_folder(test_client: &TestClient, workspace_id: &Uuid... function get_page_view (line 46) | async fn get_page_view() { function create_new_page_with_database (line 85) | async fn create_new_page_with_database() { function create_new_folder_view (line 162) | async fn create_new_folder_view() { function create_new_document_page (line 208) | async fn create_new_document_page() { function append_block_to_page (line 306) | async fn append_block_to_page() { function create_new_chat_page (line 347) | async fn create_new_chat_page() { function move_page_to_another_space (line 400) | async fn move_page_to_another_space() { function move_page_to_trash_then_restore (line 457) | async fn move_page_to_trash_then_restore() { function move_page_with_child_to_trash_then_restore (line 552) | async fn move_page_with_child_to_trash_then_restore() { function move_page_with_child_to_trash_then_delete_permanently (line 621) | async fn move_page_with_child_to_trash_then_delete_permanently() { function move_page_with_child_to_trash_then_delete_all_permanently (line 693) | async fn move_page_with_child_to_trash_then_delete_all_permanently() { function update_page (line 765) | async fn update_page() { function favorite_page (line 887) | async fn favorite_page() { function create_space (line 928) | async fn create_space() { function publish_page (line 1028) | async fn publish_page() { function duplicate_view (line 1109) | async fn duplicate_view() { function create_database_page_view (line 1156) | async fn create_database_page_view() { function add_recent_pages (line 1223) | async fn add_recent_pages() { FILE: tests/workspace/person.rs function workspace_mentionable_persons_crud (line 7) | async fn workspace_mentionable_persons_crud() { FILE: tests/workspace/publish.rs function test_set_publish_namespace_set (line 34) | async fn test_set_publish_namespace_set() { function test_publish_doc (line 111) | async fn test_publish_doc() { function test_publish_comments (line 476) | async fn test_publish_comments() { function test_excessive_comment_length (line 717) | async fn test_excessive_comment_length() { function test_publish_reactions (line 755) | async fn test_publish_reactions() { function test_publish_load_test (line 882) | async fn test_publish_load_test() { function get_first_workspace (line 918) | async fn get_first_workspace(c: &client_api::Client) -> Uuid { function workspace_member_publish_unpublish (line 928) | async fn workspace_member_publish_unpublish() { type MyCustomMetadata (line 967) | struct MyCustomMetadata { function duplicate_to_workspace_references (line 972) | async fn duplicate_to_workspace_references() { function duplicate_to_workspace_doc_inline_database (line 1062) | async fn duplicate_to_workspace_doc_inline_database() { function duplicate_to_workspace_db_embedded_in_doc (line 1246) | async fn duplicate_to_workspace_db_embedded_in_doc() { function duplicate_to_workspace_db_with_relation (line 1348) | async fn duplicate_to_workspace_db_with_relation() { function duplicate_to_workspace_db_row_with_doc (line 1470) | async fn duplicate_to_workspace_db_row_with_doc() { function duplicate_to_workspace_db_rel_self (line 1565) | async fn duplicate_to_workspace_db_rel_self() { function duplicate_to_workspace_inline_db_doc_with_relation (line 1641) | async fn duplicate_to_workspace_inline_db_doc_with_relation() { function get_database_id_and_row_ids (line 1724) | fn get_database_id_and_row_ids( function test_republish_doc (line 1740) | async fn test_republish_doc() { function test_republish_patch (line 1838) | async fn test_republish_patch() { FILE: tests/workspace/published_data.rs constant DOC_1_META (line 1) | pub const DOC_1_META: &str = r#" constant DOC_1_DOC_STATE_HEX (line 62) | pub const DOC_1_DOC_STATE_HEX: &str = "050faafac5b509002700edea9f9204040... constant DOC_2_META (line 64) | pub const DOC_2_META: &str = r#" constant DOC_2_DOC_STATE_HEX (line 125) | pub const DOC_2_DOC_STATE_HEX: &str = "03048f99d3810d00010096d0a38409190... constant GRID_1_META (line 127) | pub const GRID_1_META: &str = r#" constant GRID_1_DB_DATA (line 204) | pub const GRID_1_DB_DATA: &str = "7b2264617461626173655f636f6c6c6162223a... constant DOC_3_META (line 206) | pub const DOC_3_META: &str = r#" constant DOC_3_DOC_STATE_HEX (line 267) | pub const DOC_3_DOC_STATE_HEX: &str = "090bf09cfed80b00000b2700c587a7ac0... constant VIEW_OF_GRID_1_META (line 269) | pub const VIEW_OF_GRID_1_META: &str = r#" constant VIEW_OF_GRID_1_DB_DATA (line 345) | pub const VIEW_OF_GRID_1_DB_DATA: &str = "7b2264617461626173655f636f6c6c... constant DOC_WITH_EMBEDDED_DB_META (line 347) | pub const DOC_WITH_EMBEDDED_DB_META: &str = r#" constant DOC_WITH_EMBEDDED_DB_HEX (line 422) | pub const DOC_WITH_EMBEDDED_DB_HEX: &str = "0301ece2869f09000100b1add379... constant EMBEDDED_DB_META (line 424) | pub const EMBEDDED_DB_META: &str = r#" constant EMBEDDED_DB_HEX (line 494) | pub const EMBEDDED_DB_HEX: &str="7b2264617461626173655f636f6c6c6162223a5... constant DB_WITH_REL_COL_META (line 496) | pub const DB_WITH_REL_COL_META: &str = r#" constant DB_WITH_REL_COL_HEX (line 557) | pub const DB_WITH_REL_COL_HEX: &str = "7b2264617461626173655f636f6c6c616... constant RELATED_DB_META (line 559) | pub const RELATED_DB_META: &str = r#" constant RELATED_DB_HEX (line 620) | pub const RELATED_DB_HEX: &str = "7b2264617461626173655f636f6c6c6162223a... constant DB_ROW_WITH_DOC_META (line 622) | pub const DB_ROW_WITH_DOC_META: &str = r#" constant DB_ROW_WITH_DOC_HEX (line 683) | pub const DB_ROW_WITH_DOC_HEX :&str = "7b2264617461626173655f636f6c6c616... constant DB_REL_SELF_META (line 685) | pub const DB_REL_SELF_META: &str = r#" constant DB_REL_SELF_HEX (line 746) | pub const DB_REL_SELF_HEX: &str = "7b2264617461626173655f636f6c6c6162223... constant DOC_4_META (line 748) | pub const DOC_4_META: &str = r#" constant DOC_4_DOC_STATE_HEX (line 825) | pub const DOC_4_DOC_STATE_HEX: &str = "030ba9a7c6f509000100c0dba80319052... constant GRID_2_META (line 827) | pub const GRID_2_META: &str = r#" constant GRID_2_HEX (line 888) | pub const GRID_2_HEX :&str ="7b2264617461626173655f636f6c6c6162223a5b332... constant GRID_3_META (line 890) | pub const GRID_3_META: &str = r#" constant GRID_3_HEX (line 967) | pub const GRID_3_HEX: &str = "7b2264617461626173655f636f6c6c6162223a5b34... FILE: tests/workspace/quick_note.rs function quick_note_crud_test (line 9) | async fn quick_note_crud_test() { FILE: tests/workspace/template.rs function get_first_workspace (line 11) | async fn get_first_workspace(c: &client_api::Client) -> Uuid { function test_template_category_crud (line 21) | async fn test_template_category_crud() { function test_template_creator_crud (line 139) | async fn test_template_creator_crud() { function test_template_crud (line 212) | async fn test_template_crud() { type TemplateMetadata (line 437) | struct TemplateMetadata {} FILE: tests/workspace/workspace_crud.rs function workspace_list_database (line 12) | async fn workspace_list_database() { function add_and_delete_workspace_for_user (line 141) | async fn add_and_delete_workspace_for_user() { function test_workspace_rename_and_icon_change (line 181) | async fn test_workspace_rename_and_icon_change() { FILE: tests/workspace/workspace_folder.rs function get_workpace_folder (line 4) | async fn get_workpace_folder() { FILE: tests/workspace/workspace_settings.rs function get_and_set_workspace_by_owner (line 8) | async fn get_and_set_workspace_by_owner() { function get_and_set_workspace_by_non_owner (line 32) | async fn get_and_set_workspace_by_non_owner() { function invite_user_to_workspace (line 58) | async fn invite_user_to_workspace( FILE: tests/yrs_version/document_test.rs function load_yrs_0172_version_get_started_document_using_current_yrs_version (line 9) | fn load_yrs_0172_version_get_started_document_using_current_yrs_version() { FILE: tests/yrs_version/folder_test.rs function load_yrs_0172_version_folder_using_current_yrs_version (line 21) | fn load_yrs_0172_version_folder_using_current_yrs_version() { FILE: tests/yrs_version/util.rs function read_bytes_from_file (line 4) | pub(crate) fn read_bytes_from_file(file_name: &str) -> Vec { FILE: xtask/src/main.rs function main (line 30) | async fn main() -> Result<()> { function spawn_server (line 202) | fn spawn_server(command: &str, args: &[&str], name: &str) -> Result Result<()> { function handle_process_exit (line 222) | fn handle_process_exit(status: std::process::ExitStatus, process_name: &... function wait_for_readiness (line 235) | async fn wait_for_readiness(process_name: &str) -> Result<()> {