Created
September 12, 2023 15:04
-
-
Save thorseraq/b6b3124f228147e0d10826a3f9139d5e to your computer and use it in GitHub Desktop.
SeaORM expand
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #![feature(prelude_import)] | |
| #[prelude_import] | |
| use std::prelude::rust_2021::*; | |
| #[macro_use] | |
| extern crate std; | |
| #[forbid(unsafe_code)] | |
| mod entities { | |
| //! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.2 | |
| pub mod prelude { | |
| //! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.2 | |
| pub use super::{ | |
| blobs::Entity as Blobs, bucket_blobs::Entity as BucketBlobs, | |
| diff_log::Entity as DiffLog, docs::Entity as Docs, | |
| optimized_blobs::Entity as OptimizedBlobs, | |
| }; | |
| } | |
| pub mod blobs { | |
| //! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.2 | |
| use sea_orm::entity::prelude::*; | |
| #[sea_orm(table_name = "blobs")] | |
| pub struct Model { | |
| #[sea_orm(primary_key, auto_increment = false)] | |
| pub workspace_id: String, | |
| #[sea_orm(primary_key, auto_increment = false)] | |
| pub hash: String, | |
| #[sea_orm(column_type = "Binary(BlobSize::Blob(None))")] | |
| pub blob: Vec<u8>, | |
| pub length: i64, | |
| pub created_at: DateTimeWithTimeZone, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Model { | |
| #[inline] | |
| fn clone(&self) -> Model { | |
| Model { | |
| workspace_id: ::core::clone::Clone::clone(&self.workspace_id), | |
| hash: ::core::clone::Clone::clone(&self.hash), | |
| blob: ::core::clone::Clone::clone(&self.blob), | |
| length: ::core::clone::Clone::clone(&self.length), | |
| created_at: ::core::clone::Clone::clone(&self.created_at), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Model { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::debug_struct_field5_finish( | |
| f, | |
| "Model", | |
| "workspace_id", | |
| &self.workspace_id, | |
| "hash", | |
| &self.hash, | |
| "blob", | |
| &self.blob, | |
| "length", | |
| &self.length, | |
| "created_at", | |
| &&self.created_at, | |
| ) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for Model { | |
| #[inline] | |
| fn eq(&self, other: &Model) -> bool { | |
| self.workspace_id == other.workspace_id | |
| && self.hash == other.hash | |
| && self.blob == other.blob | |
| && self.length == other.length | |
| && self.created_at == other.created_at | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum Column { | |
| /// Generated by sea-orm-macros | |
| WorkspaceId, | |
| /// Generated by sea-orm-macros | |
| Hash, | |
| /// Generated by sea-orm-macros | |
| Blob, | |
| /// Generated by sea-orm-macros | |
| Length, | |
| /// Generated by sea-orm-macros | |
| CreatedAt, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Column {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Column { | |
| #[inline] | |
| fn clone(&self) -> Column { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Column { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str( | |
| f, | |
| match self { | |
| Column::WorkspaceId => "WorkspaceId", | |
| Column::Hash => "Hash", | |
| Column::Blob => "Blob", | |
| Column::Length => "Length", | |
| Column::CreatedAt => "CreatedAt", | |
| }, | |
| ) | |
| } | |
| } | |
| ///An iterator over the variants of [Column] | |
| #[allow(missing_copy_implementations)] | |
| pub struct ColumnIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for ColumnIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("ColumnIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl ColumnIter { | |
| fn get(&self, idx: usize) -> Option<Column> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(Column::WorkspaceId), | |
| 1usize => ::core::option::Option::Some(Column::Hash), | |
| 2usize => ::core::option::Option::Some(Column::Blob), | |
| 3usize => ::core::option::Option::Some(Column::Length), | |
| 4usize => ::core::option::Option::Some(Column::CreatedAt), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Column { | |
| type Iterator = ColumnIter; | |
| fn iter() -> ColumnIter { | |
| ColumnIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for ColumnIter { | |
| type Item = Column; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 5usize { | |
| 0 | |
| } else { | |
| 5usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 5usize { | |
| self.idx = 5usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for ColumnIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for ColumnIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 5usize { | |
| self.back_idx = 5usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(5usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for ColumnIter { | |
| fn clone(&self) -> ColumnIter { | |
| ColumnIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl Column { | |
| fn default_as_str(&self) -> &str { | |
| match self { | |
| Self::WorkspaceId => "workspace_id", | |
| Self::Hash => "hash", | |
| Self::Blob => "blob", | |
| Self::Length => "length", | |
| Self::CreatedAt => "created_at", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::str::FromStr for Column { | |
| type Err = sea_orm::ColumnFromStrErr; | |
| fn from_str(s: &str) -> std::result::Result<Self, Self::Err> { | |
| match s { | |
| "workspace_id" | "workspaceId" => Ok(Column::WorkspaceId), | |
| "hash" | "hash" => Ok(Column::Hash), | |
| "blob" | "blob" => Ok(Column::Blob), | |
| "length" | "length" => Ok(Column::Length), | |
| "created_at" | "createdAt" => Ok(Column::CreatedAt), | |
| _ => Err(sea_orm::ColumnFromStrErr(s.to_owned())), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Column { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Column { | |
| fn as_str(&self) -> &str { | |
| self.default_as_str() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::ColumnTrait for Column { | |
| type EntityName = Entity; | |
| fn def(&self) -> sea_orm::prelude::ColumnDef { | |
| match self { | |
| Self::WorkspaceId => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::Hash => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::Blob => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::Binary(BlobSize::Blob(None)), | |
| ), | |
| Self::Length => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::BigInteger, | |
| ), | |
| Self::CreatedAt => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::TimestampWithTimeZone, | |
| ), | |
| } | |
| } | |
| fn select_as(&self, expr: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::select_enum_as(self, expr), | |
| } | |
| } | |
| fn save_as(&self, val: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::save_enum_as(self, val), | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct Entity; | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Entity {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Entity { | |
| #[inline] | |
| fn clone(&self) -> Entity { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::default::Default for Entity { | |
| #[inline] | |
| fn default() -> Entity { | |
| Entity {} | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Entity { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str(f, "Entity") | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::EntityTrait for Entity { | |
| type Model = Model; | |
| type Column = Column; | |
| type PrimaryKey = PrimaryKey; | |
| type Relation = Relation; | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Entity { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Entity { | |
| fn as_str(&self) -> &str { | |
| <Self as sea_orm::EntityName>::table_name(self) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::EntityName for Entity { | |
| fn schema_name(&self) -> Option<&str> { | |
| None | |
| } | |
| fn table_name(&self) -> &str { | |
| "blobs" | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum PrimaryKey { | |
| /// Generated by sea-orm-macros | |
| WorkspaceId, | |
| /// Generated by sea-orm-macros | |
| Hash, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for PrimaryKey {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for PrimaryKey { | |
| #[inline] | |
| fn clone(&self) -> PrimaryKey { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for PrimaryKey { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str( | |
| f, | |
| match self { | |
| PrimaryKey::WorkspaceId => "WorkspaceId", | |
| PrimaryKey::Hash => "Hash", | |
| }, | |
| ) | |
| } | |
| } | |
| ///An iterator over the variants of [PrimaryKey] | |
| #[allow(missing_copy_implementations)] | |
| pub struct PrimaryKeyIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for PrimaryKeyIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("PrimaryKeyIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl PrimaryKeyIter { | |
| fn get(&self, idx: usize) -> Option<PrimaryKey> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(PrimaryKey::WorkspaceId), | |
| 1usize => ::core::option::Option::Some(PrimaryKey::Hash), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for PrimaryKey { | |
| type Iterator = PrimaryKeyIter; | |
| fn iter() -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for PrimaryKeyIter { | |
| type Item = PrimaryKey; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 2usize { | |
| 0 | |
| } else { | |
| 2usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 2usize { | |
| self.idx = 2usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for PrimaryKeyIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for PrimaryKeyIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 2usize { | |
| self.back_idx = 2usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(2usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for PrimaryKeyIter { | |
| fn clone(&self) -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for PrimaryKey { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for PrimaryKey { | |
| fn as_str(&self) -> &str { | |
| match self { | |
| Self::WorkspaceId => "workspace_id", | |
| Self::Hash => "hash", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::PrimaryKeyToColumn for PrimaryKey { | |
| type Column = Column; | |
| fn into_column(self) -> Self::Column { | |
| match self { | |
| Self::WorkspaceId => Self::Column::WorkspaceId, | |
| Self::Hash => Self::Column::Hash, | |
| } | |
| } | |
| fn from_column(col: Self::Column) -> Option<Self> { | |
| match col { | |
| Self::Column::WorkspaceId => Some(Self::WorkspaceId), | |
| Self::Column::Hash => Some(Self::Hash), | |
| _ => None, | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl PrimaryKeyTrait for PrimaryKey { | |
| type ValueType = (String, String); | |
| fn auto_increment() -> bool { | |
| false | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::FromQueryResult for Model { | |
| fn from_query_result( | |
| row: &sea_orm::QueryResult, | |
| pre: &str, | |
| ) -> std::result::Result<Self, sea_orm::DbErr> { | |
| Ok (Self { workspace_id : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: WorkspaceId) . into ()) ? , hash : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Hash) . into ()) ? , blob : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Blob) . into ()) ? , length : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Length) . into ()) ? , created_at : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: CreatedAt) . into ()) ? , }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ModelTrait for Model { | |
| type Entity = Entity; | |
| fn get( | |
| &self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| ) -> sea_orm::Value { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Hash => { | |
| self.hash.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Blob => { | |
| self.blob.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Length => { | |
| self.length.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::CreatedAt => { | |
| self.created_at.clone().into() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| fn set( | |
| &mut self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| v: sea_orm::Value, | |
| ) { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Hash => { | |
| self.hash = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Blob => { | |
| self.blob = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Length => { | |
| self.length = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::CreatedAt => { | |
| self.created_at = v.unwrap() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct ActiveModel { | |
| /// Generated by sea-orm-macros | |
| pub workspace_id: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub hash: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub blob: sea_orm::ActiveValue<Vec<u8>>, | |
| /// Generated by sea-orm-macros | |
| pub length: sea_orm::ActiveValue<i64>, | |
| /// Generated by sea-orm-macros | |
| pub created_at: sea_orm::ActiveValue<DateTimeWithTimeZone>, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for ActiveModel { | |
| #[inline] | |
| fn clone(&self) -> ActiveModel { | |
| ActiveModel { | |
| workspace_id: ::core::clone::Clone::clone(&self.workspace_id), | |
| hash: ::core::clone::Clone::clone(&self.hash), | |
| blob: ::core::clone::Clone::clone(&self.blob), | |
| length: ::core::clone::Clone::clone(&self.length), | |
| created_at: ::core::clone::Clone::clone(&self.created_at), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for ActiveModel { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::debug_struct_field5_finish( | |
| f, | |
| "ActiveModel", | |
| "workspace_id", | |
| &self.workspace_id, | |
| "hash", | |
| &self.hash, | |
| "blob", | |
| &self.blob, | |
| "length", | |
| &self.length, | |
| "created_at", | |
| &&self.created_at, | |
| ) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for ActiveModel {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for ActiveModel { | |
| #[inline] | |
| fn eq(&self, other: &ActiveModel) -> bool { | |
| self.workspace_id == other.workspace_id | |
| && self.hash == other.hash | |
| && self.blob == other.blob | |
| && self.length == other.length | |
| && self.created_at == other.created_at | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::default::Default for ActiveModel { | |
| fn default() -> Self { | |
| <Self as sea_orm::ActiveModelBehavior>::new() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::From<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn from(m: <Entity as EntityTrait>::Model) -> Self { | |
| Self { | |
| workspace_id: sea_orm::ActiveValue::unchanged(m.workspace_id), | |
| hash: sea_orm::ActiveValue::unchanged(m.hash), | |
| blob: sea_orm::ActiveValue::unchanged(m.blob), | |
| length: sea_orm::ActiveValue::unchanged(m.length), | |
| created_at: sea_orm::ActiveValue::unchanged(m.created_at), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IntoActiveModel<ActiveModel> for <Entity as EntityTrait>::Model { | |
| fn into_active_model(self) -> ActiveModel { | |
| self.into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ActiveModelTrait for ActiveModel { | |
| type Entity = Entity; | |
| fn take( | |
| &mut self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.workspace_id); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.hash); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.blob); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.length); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.created_at); | |
| value.into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn get( | |
| &self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at.clone().into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: sea_orm::Value) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn not_set(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at = sea_orm::ActiveValue::not_set() | |
| } | |
| _ => {} | |
| } | |
| } | |
| fn is_not_set(&self, c: <Self::Entity as EntityTrait>::Column) -> bool { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.is_not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => self.hash.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Blob => self.blob.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Length => self.length.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at.is_not_set() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn default() -> Self { | |
| Self { | |
| workspace_id: sea_orm::ActiveValue::not_set(), | |
| hash: sea_orm::ActiveValue::not_set(), | |
| blob: sea_orm::ActiveValue::not_set(), | |
| length: sea_orm::ActiveValue::not_set(), | |
| created_at: sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn reset(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => self.workspace_id.reset(), | |
| <Self::Entity as EntityTrait>::Column::Hash => self.hash.reset(), | |
| <Self::Entity as EntityTrait>::Column::Blob => self.blob.reset(), | |
| <Self::Entity as EntityTrait>::Column::Length => self.length.reset(), | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => self.created_at.reset(), | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::TryFrom<ActiveModel> for <Entity as EntityTrait>::Model { | |
| type Error = sea_orm::DbErr; | |
| fn try_from(a: ActiveModel) -> Result<Self, sea_orm::DbErr> { | |
| if match a.workspace_id { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("workspace_id".to_owned())); | |
| } | |
| if match a.hash { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("hash".to_owned())); | |
| } | |
| if match a.blob { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("blob".to_owned())); | |
| } | |
| if match a.length { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("length".to_owned())); | |
| } | |
| if match a.created_at { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("created_at".to_owned())); | |
| } | |
| Ok(Self { | |
| workspace_id: a.workspace_id.into_value().unwrap().unwrap(), | |
| hash: a.hash.into_value().unwrap().unwrap(), | |
| blob: a.blob.into_value().unwrap().unwrap(), | |
| length: a.length.into_value().unwrap().unwrap(), | |
| created_at: a.created_at.into_value().unwrap().unwrap(), | |
| }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::TryIntoModel<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn try_into_model(self) -> Result<<Entity as EntityTrait>::Model, sea_orm::DbErr> { | |
| self.try_into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::Eq for Model { | |
| #[inline] | |
| #[doc(hidden)] | |
| #[no_coverage] | |
| fn assert_receiver_is_total_eq(&self) -> () { | |
| let _: ::core::cmp::AssertParamIsEq<String>; | |
| let _: ::core::cmp::AssertParamIsEq<Vec<u8>>; | |
| let _: ::core::cmp::AssertParamIsEq<i64>; | |
| let _: ::core::cmp::AssertParamIsEq<DateTimeWithTimeZone>; | |
| } | |
| } | |
| pub enum Relation {} | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Relation {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Relation { | |
| #[inline] | |
| fn clone(&self) -> Relation { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Relation { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| match *self {} | |
| } | |
| } | |
| ///An iterator over the variants of [Relation] | |
| #[allow(missing_copy_implementations)] | |
| pub struct RelationIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for RelationIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("RelationIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl RelationIter { | |
| fn get(&self, idx: usize) -> Option<Relation> { | |
| match idx { | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Relation { | |
| type Iterator = RelationIter; | |
| fn iter() -> RelationIter { | |
| RelationIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for RelationIter { | |
| type Item = Relation; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 0usize { | |
| 0 | |
| } else { | |
| 0usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 0usize { | |
| self.idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for RelationIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for RelationIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 0usize { | |
| self.back_idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(0usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for RelationIter { | |
| fn clone(&self) -> RelationIter { | |
| RelationIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::RelationTrait for Relation { | |
| fn def(&self) -> sea_orm::entity::RelationDef { | |
| match self { | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("No RelationDef for Relation")); | |
| } | |
| } | |
| } | |
| } | |
| impl ActiveModelBehavior for ActiveModel {} | |
| } | |
| pub mod bucket_blobs { | |
| //! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.2 | |
| use sea_orm::entity::prelude::*; | |
| #[sea_orm(table_name = "bucket_blobs")] | |
| pub struct Model { | |
| #[sea_orm(primary_key, auto_increment = false)] | |
| pub workspace_id: String, | |
| #[sea_orm(primary_key, auto_increment = false)] | |
| pub hash: String, | |
| pub length: i64, | |
| pub created_at: DateTimeWithTimeZone, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Model { | |
| #[inline] | |
| fn clone(&self) -> Model { | |
| Model { | |
| workspace_id: ::core::clone::Clone::clone(&self.workspace_id), | |
| hash: ::core::clone::Clone::clone(&self.hash), | |
| length: ::core::clone::Clone::clone(&self.length), | |
| created_at: ::core::clone::Clone::clone(&self.created_at), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Model { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::debug_struct_field4_finish( | |
| f, | |
| "Model", | |
| "workspace_id", | |
| &self.workspace_id, | |
| "hash", | |
| &self.hash, | |
| "length", | |
| &self.length, | |
| "created_at", | |
| &&self.created_at, | |
| ) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for Model { | |
| #[inline] | |
| fn eq(&self, other: &Model) -> bool { | |
| self.workspace_id == other.workspace_id | |
| && self.hash == other.hash | |
| && self.length == other.length | |
| && self.created_at == other.created_at | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum Column { | |
| /// Generated by sea-orm-macros | |
| WorkspaceId, | |
| /// Generated by sea-orm-macros | |
| Hash, | |
| /// Generated by sea-orm-macros | |
| Length, | |
| /// Generated by sea-orm-macros | |
| CreatedAt, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Column {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Column { | |
| #[inline] | |
| fn clone(&self) -> Column { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Column { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str( | |
| f, | |
| match self { | |
| Column::WorkspaceId => "WorkspaceId", | |
| Column::Hash => "Hash", | |
| Column::Length => "Length", | |
| Column::CreatedAt => "CreatedAt", | |
| }, | |
| ) | |
| } | |
| } | |
| ///An iterator over the variants of [Column] | |
| #[allow(missing_copy_implementations)] | |
| pub struct ColumnIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for ColumnIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("ColumnIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl ColumnIter { | |
| fn get(&self, idx: usize) -> Option<Column> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(Column::WorkspaceId), | |
| 1usize => ::core::option::Option::Some(Column::Hash), | |
| 2usize => ::core::option::Option::Some(Column::Length), | |
| 3usize => ::core::option::Option::Some(Column::CreatedAt), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Column { | |
| type Iterator = ColumnIter; | |
| fn iter() -> ColumnIter { | |
| ColumnIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for ColumnIter { | |
| type Item = Column; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 4usize { | |
| 0 | |
| } else { | |
| 4usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 4usize { | |
| self.idx = 4usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for ColumnIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for ColumnIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 4usize { | |
| self.back_idx = 4usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(4usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for ColumnIter { | |
| fn clone(&self) -> ColumnIter { | |
| ColumnIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl Column { | |
| fn default_as_str(&self) -> &str { | |
| match self { | |
| Self::WorkspaceId => "workspace_id", | |
| Self::Hash => "hash", | |
| Self::Length => "length", | |
| Self::CreatedAt => "created_at", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::str::FromStr for Column { | |
| type Err = sea_orm::ColumnFromStrErr; | |
| fn from_str(s: &str) -> std::result::Result<Self, Self::Err> { | |
| match s { | |
| "workspace_id" | "workspaceId" => Ok(Column::WorkspaceId), | |
| "hash" | "hash" => Ok(Column::Hash), | |
| "length" | "length" => Ok(Column::Length), | |
| "created_at" | "createdAt" => Ok(Column::CreatedAt), | |
| _ => Err(sea_orm::ColumnFromStrErr(s.to_owned())), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Column { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Column { | |
| fn as_str(&self) -> &str { | |
| self.default_as_str() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::ColumnTrait for Column { | |
| type EntityName = Entity; | |
| fn def(&self) -> sea_orm::prelude::ColumnDef { | |
| match self { | |
| Self::WorkspaceId => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::Hash => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::Length => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::BigInteger, | |
| ), | |
| Self::CreatedAt => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::TimestampWithTimeZone, | |
| ), | |
| } | |
| } | |
| fn select_as(&self, expr: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::select_enum_as(self, expr), | |
| } | |
| } | |
| fn save_as(&self, val: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::save_enum_as(self, val), | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct Entity; | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Entity {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Entity { | |
| #[inline] | |
| fn clone(&self) -> Entity { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::default::Default for Entity { | |
| #[inline] | |
| fn default() -> Entity { | |
| Entity {} | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Entity { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str(f, "Entity") | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::EntityTrait for Entity { | |
| type Model = Model; | |
| type Column = Column; | |
| type PrimaryKey = PrimaryKey; | |
| type Relation = Relation; | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Entity { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Entity { | |
| fn as_str(&self) -> &str { | |
| <Self as sea_orm::EntityName>::table_name(self) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::EntityName for Entity { | |
| fn schema_name(&self) -> Option<&str> { | |
| None | |
| } | |
| fn table_name(&self) -> &str { | |
| "bucket_blobs" | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum PrimaryKey { | |
| /// Generated by sea-orm-macros | |
| WorkspaceId, | |
| /// Generated by sea-orm-macros | |
| Hash, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for PrimaryKey {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for PrimaryKey { | |
| #[inline] | |
| fn clone(&self) -> PrimaryKey { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for PrimaryKey { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str( | |
| f, | |
| match self { | |
| PrimaryKey::WorkspaceId => "WorkspaceId", | |
| PrimaryKey::Hash => "Hash", | |
| }, | |
| ) | |
| } | |
| } | |
| ///An iterator over the variants of [PrimaryKey] | |
| #[allow(missing_copy_implementations)] | |
| pub struct PrimaryKeyIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for PrimaryKeyIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("PrimaryKeyIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl PrimaryKeyIter { | |
| fn get(&self, idx: usize) -> Option<PrimaryKey> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(PrimaryKey::WorkspaceId), | |
| 1usize => ::core::option::Option::Some(PrimaryKey::Hash), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for PrimaryKey { | |
| type Iterator = PrimaryKeyIter; | |
| fn iter() -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for PrimaryKeyIter { | |
| type Item = PrimaryKey; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 2usize { | |
| 0 | |
| } else { | |
| 2usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 2usize { | |
| self.idx = 2usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for PrimaryKeyIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for PrimaryKeyIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 2usize { | |
| self.back_idx = 2usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(2usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for PrimaryKeyIter { | |
| fn clone(&self) -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for PrimaryKey { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for PrimaryKey { | |
| fn as_str(&self) -> &str { | |
| match self { | |
| Self::WorkspaceId => "workspace_id", | |
| Self::Hash => "hash", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::PrimaryKeyToColumn for PrimaryKey { | |
| type Column = Column; | |
| fn into_column(self) -> Self::Column { | |
| match self { | |
| Self::WorkspaceId => Self::Column::WorkspaceId, | |
| Self::Hash => Self::Column::Hash, | |
| } | |
| } | |
| fn from_column(col: Self::Column) -> Option<Self> { | |
| match col { | |
| Self::Column::WorkspaceId => Some(Self::WorkspaceId), | |
| Self::Column::Hash => Some(Self::Hash), | |
| _ => None, | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl PrimaryKeyTrait for PrimaryKey { | |
| type ValueType = (String, String); | |
| fn auto_increment() -> bool { | |
| false | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::FromQueryResult for Model { | |
| fn from_query_result( | |
| row: &sea_orm::QueryResult, | |
| pre: &str, | |
| ) -> std::result::Result<Self, sea_orm::DbErr> { | |
| Ok (Self { workspace_id : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: WorkspaceId) . into ()) ? , hash : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Hash) . into ()) ? , length : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Length) . into ()) ? , created_at : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: CreatedAt) . into ()) ? , }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ModelTrait for Model { | |
| type Entity = Entity; | |
| fn get( | |
| &self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| ) -> sea_orm::Value { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Hash => { | |
| self.hash.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Length => { | |
| self.length.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::CreatedAt => { | |
| self.created_at.clone().into() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| fn set( | |
| &mut self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| v: sea_orm::Value, | |
| ) { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Hash => { | |
| self.hash = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Length => { | |
| self.length = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::CreatedAt => { | |
| self.created_at = v.unwrap() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct ActiveModel { | |
| /// Generated by sea-orm-macros | |
| pub workspace_id: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub hash: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub length: sea_orm::ActiveValue<i64>, | |
| /// Generated by sea-orm-macros | |
| pub created_at: sea_orm::ActiveValue<DateTimeWithTimeZone>, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for ActiveModel { | |
| #[inline] | |
| fn clone(&self) -> ActiveModel { | |
| ActiveModel { | |
| workspace_id: ::core::clone::Clone::clone(&self.workspace_id), | |
| hash: ::core::clone::Clone::clone(&self.hash), | |
| length: ::core::clone::Clone::clone(&self.length), | |
| created_at: ::core::clone::Clone::clone(&self.created_at), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for ActiveModel { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::debug_struct_field4_finish( | |
| f, | |
| "ActiveModel", | |
| "workspace_id", | |
| &self.workspace_id, | |
| "hash", | |
| &self.hash, | |
| "length", | |
| &self.length, | |
| "created_at", | |
| &&self.created_at, | |
| ) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for ActiveModel {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for ActiveModel { | |
| #[inline] | |
| fn eq(&self, other: &ActiveModel) -> bool { | |
| self.workspace_id == other.workspace_id | |
| && self.hash == other.hash | |
| && self.length == other.length | |
| && self.created_at == other.created_at | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::default::Default for ActiveModel { | |
| fn default() -> Self { | |
| <Self as sea_orm::ActiveModelBehavior>::new() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::From<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn from(m: <Entity as EntityTrait>::Model) -> Self { | |
| Self { | |
| workspace_id: sea_orm::ActiveValue::unchanged(m.workspace_id), | |
| hash: sea_orm::ActiveValue::unchanged(m.hash), | |
| length: sea_orm::ActiveValue::unchanged(m.length), | |
| created_at: sea_orm::ActiveValue::unchanged(m.created_at), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IntoActiveModel<ActiveModel> for <Entity as EntityTrait>::Model { | |
| fn into_active_model(self) -> ActiveModel { | |
| self.into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ActiveModelTrait for ActiveModel { | |
| type Entity = Entity; | |
| fn take( | |
| &mut self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.workspace_id); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.hash); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.length); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.created_at); | |
| value.into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn get( | |
| &self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at.clone().into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: sea_orm::Value) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn not_set(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at = sea_orm::ActiveValue::not_set() | |
| } | |
| _ => {} | |
| } | |
| } | |
| fn is_not_set(&self, c: <Self::Entity as EntityTrait>::Column) -> bool { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.is_not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => self.hash.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Length => self.length.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at.is_not_set() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn default() -> Self { | |
| Self { | |
| workspace_id: sea_orm::ActiveValue::not_set(), | |
| hash: sea_orm::ActiveValue::not_set(), | |
| length: sea_orm::ActiveValue::not_set(), | |
| created_at: sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn reset(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => self.workspace_id.reset(), | |
| <Self::Entity as EntityTrait>::Column::Hash => self.hash.reset(), | |
| <Self::Entity as EntityTrait>::Column::Length => self.length.reset(), | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => self.created_at.reset(), | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::TryFrom<ActiveModel> for <Entity as EntityTrait>::Model { | |
| type Error = sea_orm::DbErr; | |
| fn try_from(a: ActiveModel) -> Result<Self, sea_orm::DbErr> { | |
| if match a.workspace_id { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("workspace_id".to_owned())); | |
| } | |
| if match a.hash { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("hash".to_owned())); | |
| } | |
| if match a.length { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("length".to_owned())); | |
| } | |
| if match a.created_at { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("created_at".to_owned())); | |
| } | |
| Ok(Self { | |
| workspace_id: a.workspace_id.into_value().unwrap().unwrap(), | |
| hash: a.hash.into_value().unwrap().unwrap(), | |
| length: a.length.into_value().unwrap().unwrap(), | |
| created_at: a.created_at.into_value().unwrap().unwrap(), | |
| }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::TryIntoModel<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn try_into_model(self) -> Result<<Entity as EntityTrait>::Model, sea_orm::DbErr> { | |
| self.try_into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::Eq for Model { | |
| #[inline] | |
| #[doc(hidden)] | |
| #[no_coverage] | |
| fn assert_receiver_is_total_eq(&self) -> () { | |
| let _: ::core::cmp::AssertParamIsEq<String>; | |
| let _: ::core::cmp::AssertParamIsEq<i64>; | |
| let _: ::core::cmp::AssertParamIsEq<DateTimeWithTimeZone>; | |
| } | |
| } | |
| pub enum Relation {} | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Relation {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Relation { | |
| #[inline] | |
| fn clone(&self) -> Relation { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Relation { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| match *self {} | |
| } | |
| } | |
| ///An iterator over the variants of [Relation] | |
| #[allow(missing_copy_implementations)] | |
| pub struct RelationIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for RelationIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("RelationIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl RelationIter { | |
| fn get(&self, idx: usize) -> Option<Relation> { | |
| match idx { | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Relation { | |
| type Iterator = RelationIter; | |
| fn iter() -> RelationIter { | |
| RelationIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for RelationIter { | |
| type Item = Relation; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 0usize { | |
| 0 | |
| } else { | |
| 0usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 0usize { | |
| self.idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for RelationIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for RelationIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 0usize { | |
| self.back_idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(0usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for RelationIter { | |
| fn clone(&self) -> RelationIter { | |
| RelationIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::RelationTrait for Relation { | |
| fn def(&self) -> sea_orm::entity::RelationDef { | |
| match self { | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("No RelationDef for Relation")); | |
| } | |
| } | |
| } | |
| } | |
| impl ActiveModelBehavior for ActiveModel {} | |
| } | |
| pub mod diff_log { | |
| //! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.2 | |
| use sea_orm::entity::prelude::*; | |
| #[sea_orm(table_name = "diff_log")] | |
| pub struct Model { | |
| #[sea_orm(primary_key)] | |
| pub id: i32, | |
| pub workspace: String, | |
| pub timestamp: DateTimeWithTimeZone, | |
| pub log: String, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Model { | |
| #[inline] | |
| fn clone(&self) -> Model { | |
| Model { | |
| id: ::core::clone::Clone::clone(&self.id), | |
| workspace: ::core::clone::Clone::clone(&self.workspace), | |
| timestamp: ::core::clone::Clone::clone(&self.timestamp), | |
| log: ::core::clone::Clone::clone(&self.log), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Model { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::debug_struct_field4_finish( | |
| f, | |
| "Model", | |
| "id", | |
| &self.id, | |
| "workspace", | |
| &self.workspace, | |
| "timestamp", | |
| &self.timestamp, | |
| "log", | |
| &&self.log, | |
| ) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for Model { | |
| #[inline] | |
| fn eq(&self, other: &Model) -> bool { | |
| self.id == other.id | |
| && self.workspace == other.workspace | |
| && self.timestamp == other.timestamp | |
| && self.log == other.log | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum Column { | |
| /// Generated by sea-orm-macros | |
| Id, | |
| /// Generated by sea-orm-macros | |
| Workspace, | |
| /// Generated by sea-orm-macros | |
| Timestamp, | |
| /// Generated by sea-orm-macros | |
| Log, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Column {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Column { | |
| #[inline] | |
| fn clone(&self) -> Column { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Column { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str( | |
| f, | |
| match self { | |
| Column::Id => "Id", | |
| Column::Workspace => "Workspace", | |
| Column::Timestamp => "Timestamp", | |
| Column::Log => "Log", | |
| }, | |
| ) | |
| } | |
| } | |
| ///An iterator over the variants of [Column] | |
| #[allow(missing_copy_implementations)] | |
| pub struct ColumnIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for ColumnIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("ColumnIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl ColumnIter { | |
| fn get(&self, idx: usize) -> Option<Column> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(Column::Id), | |
| 1usize => ::core::option::Option::Some(Column::Workspace), | |
| 2usize => ::core::option::Option::Some(Column::Timestamp), | |
| 3usize => ::core::option::Option::Some(Column::Log), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Column { | |
| type Iterator = ColumnIter; | |
| fn iter() -> ColumnIter { | |
| ColumnIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for ColumnIter { | |
| type Item = Column; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 4usize { | |
| 0 | |
| } else { | |
| 4usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 4usize { | |
| self.idx = 4usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for ColumnIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for ColumnIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 4usize { | |
| self.back_idx = 4usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(4usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for ColumnIter { | |
| fn clone(&self) -> ColumnIter { | |
| ColumnIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl Column { | |
| fn default_as_str(&self) -> &str { | |
| match self { | |
| Self::Id => "id", | |
| Self::Workspace => "workspace", | |
| Self::Timestamp => "timestamp", | |
| Self::Log => "log", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::str::FromStr for Column { | |
| type Err = sea_orm::ColumnFromStrErr; | |
| fn from_str(s: &str) -> std::result::Result<Self, Self::Err> { | |
| match s { | |
| "id" | "id" => Ok(Column::Id), | |
| "workspace" | "workspace" => Ok(Column::Workspace), | |
| "timestamp" | "timestamp" => Ok(Column::Timestamp), | |
| "log" | "log" => Ok(Column::Log), | |
| _ => Err(sea_orm::ColumnFromStrErr(s.to_owned())), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Column { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Column { | |
| fn as_str(&self) -> &str { | |
| self.default_as_str() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::ColumnTrait for Column { | |
| type EntityName = Entity; | |
| fn def(&self) -> sea_orm::prelude::ColumnDef { | |
| match self { | |
| Self::Id => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::Integer, | |
| ), | |
| Self::Workspace => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::Timestamp => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::TimestampWithTimeZone, | |
| ), | |
| Self::Log => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| } | |
| } | |
| fn select_as(&self, expr: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::select_enum_as(self, expr), | |
| } | |
| } | |
| fn save_as(&self, val: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::save_enum_as(self, val), | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct Entity; | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Entity {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Entity { | |
| #[inline] | |
| fn clone(&self) -> Entity { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::default::Default for Entity { | |
| #[inline] | |
| fn default() -> Entity { | |
| Entity {} | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Entity { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str(f, "Entity") | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::EntityTrait for Entity { | |
| type Model = Model; | |
| type Column = Column; | |
| type PrimaryKey = PrimaryKey; | |
| type Relation = Relation; | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Entity { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Entity { | |
| fn as_str(&self) -> &str { | |
| <Self as sea_orm::EntityName>::table_name(self) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::EntityName for Entity { | |
| fn schema_name(&self) -> Option<&str> { | |
| None | |
| } | |
| fn table_name(&self) -> &str { | |
| "diff_log" | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum PrimaryKey { | |
| /// Generated by sea-orm-macros | |
| Id, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for PrimaryKey {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for PrimaryKey { | |
| #[inline] | |
| fn clone(&self) -> PrimaryKey { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for PrimaryKey { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str(f, "Id") | |
| } | |
| } | |
| ///An iterator over the variants of [PrimaryKey] | |
| #[allow(missing_copy_implementations)] | |
| pub struct PrimaryKeyIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for PrimaryKeyIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("PrimaryKeyIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl PrimaryKeyIter { | |
| fn get(&self, idx: usize) -> Option<PrimaryKey> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(PrimaryKey::Id), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for PrimaryKey { | |
| type Iterator = PrimaryKeyIter; | |
| fn iter() -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for PrimaryKeyIter { | |
| type Item = PrimaryKey; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 1usize { | |
| 0 | |
| } else { | |
| 1usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 1usize { | |
| self.idx = 1usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for PrimaryKeyIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for PrimaryKeyIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 1usize { | |
| self.back_idx = 1usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(1usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for PrimaryKeyIter { | |
| fn clone(&self) -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for PrimaryKey { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for PrimaryKey { | |
| fn as_str(&self) -> &str { | |
| match self { | |
| Self::Id => "id", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::PrimaryKeyToColumn for PrimaryKey { | |
| type Column = Column; | |
| fn into_column(self) -> Self::Column { | |
| match self { | |
| Self::Id => Self::Column::Id, | |
| } | |
| } | |
| fn from_column(col: Self::Column) -> Option<Self> { | |
| match col { | |
| Self::Column::Id => Some(Self::Id), | |
| _ => None, | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl PrimaryKeyTrait for PrimaryKey { | |
| type ValueType = i32; | |
| fn auto_increment() -> bool { | |
| true | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::FromQueryResult for Model { | |
| fn from_query_result( | |
| row: &sea_orm::QueryResult, | |
| pre: &str, | |
| ) -> std::result::Result<Self, sea_orm::DbErr> { | |
| Ok (Self { id : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Id) . into ()) ? , workspace : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Workspace) . into ()) ? , timestamp : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Timestamp) . into ()) ? , log : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Log) . into ()) ? , }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ModelTrait for Model { | |
| type Entity = Entity; | |
| fn get( | |
| &self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| ) -> sea_orm::Value { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Id => { | |
| self.id.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Workspace => { | |
| self.workspace.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Timestamp => { | |
| self.timestamp.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Log => { | |
| self.log.clone().into() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| fn set( | |
| &mut self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| v: sea_orm::Value, | |
| ) { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Id => { | |
| self.id = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Workspace => { | |
| self.workspace = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Timestamp => { | |
| self.timestamp = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Log => { | |
| self.log = v.unwrap() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct ActiveModel { | |
| /// Generated by sea-orm-macros | |
| pub id: sea_orm::ActiveValue<i32>, | |
| /// Generated by sea-orm-macros | |
| pub workspace: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub timestamp: sea_orm::ActiveValue<DateTimeWithTimeZone>, | |
| /// Generated by sea-orm-macros | |
| pub log: sea_orm::ActiveValue<String>, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for ActiveModel { | |
| #[inline] | |
| fn clone(&self) -> ActiveModel { | |
| ActiveModel { | |
| id: ::core::clone::Clone::clone(&self.id), | |
| workspace: ::core::clone::Clone::clone(&self.workspace), | |
| timestamp: ::core::clone::Clone::clone(&self.timestamp), | |
| log: ::core::clone::Clone::clone(&self.log), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for ActiveModel { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::debug_struct_field4_finish( | |
| f, | |
| "ActiveModel", | |
| "id", | |
| &self.id, | |
| "workspace", | |
| &self.workspace, | |
| "timestamp", | |
| &self.timestamp, | |
| "log", | |
| &&self.log, | |
| ) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for ActiveModel {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for ActiveModel { | |
| #[inline] | |
| fn eq(&self, other: &ActiveModel) -> bool { | |
| self.id == other.id | |
| && self.workspace == other.workspace | |
| && self.timestamp == other.timestamp | |
| && self.log == other.log | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::default::Default for ActiveModel { | |
| fn default() -> Self { | |
| <Self as sea_orm::ActiveModelBehavior>::new() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::From<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn from(m: <Entity as EntityTrait>::Model) -> Self { | |
| Self { | |
| id: sea_orm::ActiveValue::unchanged(m.id), | |
| workspace: sea_orm::ActiveValue::unchanged(m.workspace), | |
| timestamp: sea_orm::ActiveValue::unchanged(m.timestamp), | |
| log: sea_orm::ActiveValue::unchanged(m.log), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IntoActiveModel<ActiveModel> for <Entity as EntityTrait>::Model { | |
| fn into_active_model(self) -> ActiveModel { | |
| self.into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ActiveModelTrait for ActiveModel { | |
| type Entity = Entity; | |
| fn take( | |
| &mut self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.id); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Workspace => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.workspace); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Timestamp => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.timestamp); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Log => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.log); | |
| value.into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn get( | |
| &self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => { | |
| self.id.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Workspace => { | |
| self.workspace.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Timestamp => { | |
| self.timestamp.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Log => { | |
| self.log.clone().into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: sea_orm::Value) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => { | |
| self.id = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Workspace => { | |
| self.workspace = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Timestamp => { | |
| self.timestamp = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Log => { | |
| self.log = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn not_set(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => { | |
| self.id = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Workspace => { | |
| self.workspace = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Timestamp => { | |
| self.timestamp = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Log => { | |
| self.log = sea_orm::ActiveValue::not_set() | |
| } | |
| _ => {} | |
| } | |
| } | |
| fn is_not_set(&self, c: <Self::Entity as EntityTrait>::Column) -> bool { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => self.id.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Workspace => self.workspace.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Timestamp => self.timestamp.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Log => self.log.is_not_set(), | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn default() -> Self { | |
| Self { | |
| id: sea_orm::ActiveValue::not_set(), | |
| workspace: sea_orm::ActiveValue::not_set(), | |
| timestamp: sea_orm::ActiveValue::not_set(), | |
| log: sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn reset(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => self.id.reset(), | |
| <Self::Entity as EntityTrait>::Column::Workspace => self.workspace.reset(), | |
| <Self::Entity as EntityTrait>::Column::Timestamp => self.timestamp.reset(), | |
| <Self::Entity as EntityTrait>::Column::Log => self.log.reset(), | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::TryFrom<ActiveModel> for <Entity as EntityTrait>::Model { | |
| type Error = sea_orm::DbErr; | |
| fn try_from(a: ActiveModel) -> Result<Self, sea_orm::DbErr> { | |
| if match a.id { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("id".to_owned())); | |
| } | |
| if match a.workspace { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("workspace".to_owned())); | |
| } | |
| if match a.timestamp { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("timestamp".to_owned())); | |
| } | |
| if match a.log { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("log".to_owned())); | |
| } | |
| Ok(Self { | |
| id: a.id.into_value().unwrap().unwrap(), | |
| workspace: a.workspace.into_value().unwrap().unwrap(), | |
| timestamp: a.timestamp.into_value().unwrap().unwrap(), | |
| log: a.log.into_value().unwrap().unwrap(), | |
| }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::TryIntoModel<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn try_into_model(self) -> Result<<Entity as EntityTrait>::Model, sea_orm::DbErr> { | |
| self.try_into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::Eq for Model { | |
| #[inline] | |
| #[doc(hidden)] | |
| #[no_coverage] | |
| fn assert_receiver_is_total_eq(&self) -> () { | |
| let _: ::core::cmp::AssertParamIsEq<i32>; | |
| let _: ::core::cmp::AssertParamIsEq<String>; | |
| let _: ::core::cmp::AssertParamIsEq<DateTimeWithTimeZone>; | |
| } | |
| } | |
| pub enum Relation {} | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Relation {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Relation { | |
| #[inline] | |
| fn clone(&self) -> Relation { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Relation { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| match *self {} | |
| } | |
| } | |
| ///An iterator over the variants of [Relation] | |
| #[allow(missing_copy_implementations)] | |
| pub struct RelationIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for RelationIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("RelationIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl RelationIter { | |
| fn get(&self, idx: usize) -> Option<Relation> { | |
| match idx { | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Relation { | |
| type Iterator = RelationIter; | |
| fn iter() -> RelationIter { | |
| RelationIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for RelationIter { | |
| type Item = Relation; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 0usize { | |
| 0 | |
| } else { | |
| 0usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 0usize { | |
| self.idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for RelationIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for RelationIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 0usize { | |
| self.back_idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(0usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for RelationIter { | |
| fn clone(&self) -> RelationIter { | |
| RelationIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::RelationTrait for Relation { | |
| fn def(&self) -> sea_orm::entity::RelationDef { | |
| match self { | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("No RelationDef for Relation")); | |
| } | |
| } | |
| } | |
| } | |
| impl ActiveModelBehavior for ActiveModel {} | |
| } | |
| pub mod docs { | |
| //! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.2 | |
| use sea_orm::entity::prelude::*; | |
| #[sea_orm(table_name = "docs")] | |
| pub struct Model { | |
| #[sea_orm(primary_key)] | |
| pub id: i32, | |
| pub workspace_id: String, | |
| pub created_at: DateTimeWithTimeZone, | |
| #[sea_orm(column_type = "Binary(BlobSize::Blob(None))")] | |
| pub blob: Vec<u8>, | |
| pub guid: String, | |
| pub is_workspace: bool, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Model { | |
| #[inline] | |
| fn clone(&self) -> Model { | |
| Model { | |
| id: ::core::clone::Clone::clone(&self.id), | |
| workspace_id: ::core::clone::Clone::clone(&self.workspace_id), | |
| created_at: ::core::clone::Clone::clone(&self.created_at), | |
| blob: ::core::clone::Clone::clone(&self.blob), | |
| guid: ::core::clone::Clone::clone(&self.guid), | |
| is_workspace: ::core::clone::Clone::clone(&self.is_workspace), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Model { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| let names: &'static _ = &[ | |
| "id", | |
| "workspace_id", | |
| "created_at", | |
| "blob", | |
| "guid", | |
| "is_workspace", | |
| ]; | |
| let values: &[&dyn ::core::fmt::Debug] = &[ | |
| &self.id, | |
| &self.workspace_id, | |
| &self.created_at, | |
| &self.blob, | |
| &self.guid, | |
| &&self.is_workspace, | |
| ]; | |
| ::core::fmt::Formatter::debug_struct_fields_finish(f, "Model", names, values) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for Model { | |
| #[inline] | |
| fn eq(&self, other: &Model) -> bool { | |
| self.id == other.id | |
| && self.workspace_id == other.workspace_id | |
| && self.created_at == other.created_at | |
| && self.blob == other.blob | |
| && self.guid == other.guid | |
| && self.is_workspace == other.is_workspace | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum Column { | |
| /// Generated by sea-orm-macros | |
| Id, | |
| /// Generated by sea-orm-macros | |
| WorkspaceId, | |
| /// Generated by sea-orm-macros | |
| CreatedAt, | |
| /// Generated by sea-orm-macros | |
| Blob, | |
| /// Generated by sea-orm-macros | |
| Guid, | |
| /// Generated by sea-orm-macros | |
| IsWorkspace, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Column {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Column { | |
| #[inline] | |
| fn clone(&self) -> Column { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Column { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str( | |
| f, | |
| match self { | |
| Column::Id => "Id", | |
| Column::WorkspaceId => "WorkspaceId", | |
| Column::CreatedAt => "CreatedAt", | |
| Column::Blob => "Blob", | |
| Column::Guid => "Guid", | |
| Column::IsWorkspace => "IsWorkspace", | |
| }, | |
| ) | |
| } | |
| } | |
| ///An iterator over the variants of [Column] | |
| #[allow(missing_copy_implementations)] | |
| pub struct ColumnIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for ColumnIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("ColumnIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl ColumnIter { | |
| fn get(&self, idx: usize) -> Option<Column> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(Column::Id), | |
| 1usize => ::core::option::Option::Some(Column::WorkspaceId), | |
| 2usize => ::core::option::Option::Some(Column::CreatedAt), | |
| 3usize => ::core::option::Option::Some(Column::Blob), | |
| 4usize => ::core::option::Option::Some(Column::Guid), | |
| 5usize => ::core::option::Option::Some(Column::IsWorkspace), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Column { | |
| type Iterator = ColumnIter; | |
| fn iter() -> ColumnIter { | |
| ColumnIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for ColumnIter { | |
| type Item = Column; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 6usize { | |
| 0 | |
| } else { | |
| 6usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 6usize { | |
| self.idx = 6usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for ColumnIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for ColumnIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 6usize { | |
| self.back_idx = 6usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(6usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for ColumnIter { | |
| fn clone(&self) -> ColumnIter { | |
| ColumnIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl Column { | |
| fn default_as_str(&self) -> &str { | |
| match self { | |
| Self::Id => "id", | |
| Self::WorkspaceId => "workspace_id", | |
| Self::CreatedAt => "created_at", | |
| Self::Blob => "blob", | |
| Self::Guid => "guid", | |
| Self::IsWorkspace => "is_workspace", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::str::FromStr for Column { | |
| type Err = sea_orm::ColumnFromStrErr; | |
| fn from_str(s: &str) -> std::result::Result<Self, Self::Err> { | |
| match s { | |
| "id" | "id" => Ok(Column::Id), | |
| "workspace_id" | "workspaceId" => Ok(Column::WorkspaceId), | |
| "created_at" | "createdAt" => Ok(Column::CreatedAt), | |
| "blob" | "blob" => Ok(Column::Blob), | |
| "guid" | "guid" => Ok(Column::Guid), | |
| "is_workspace" | "isWorkspace" => Ok(Column::IsWorkspace), | |
| _ => Err(sea_orm::ColumnFromStrErr(s.to_owned())), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Column { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Column { | |
| fn as_str(&self) -> &str { | |
| self.default_as_str() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::ColumnTrait for Column { | |
| type EntityName = Entity; | |
| fn def(&self) -> sea_orm::prelude::ColumnDef { | |
| match self { | |
| Self::Id => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::Integer, | |
| ), | |
| Self::WorkspaceId => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::CreatedAt => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::TimestampWithTimeZone, | |
| ), | |
| Self::Blob => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::Binary(BlobSize::Blob(None)), | |
| ), | |
| Self::Guid => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::IsWorkspace => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::Boolean, | |
| ), | |
| } | |
| } | |
| fn select_as(&self, expr: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::select_enum_as(self, expr), | |
| } | |
| } | |
| fn save_as(&self, val: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::save_enum_as(self, val), | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct Entity; | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Entity {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Entity { | |
| #[inline] | |
| fn clone(&self) -> Entity { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::default::Default for Entity { | |
| #[inline] | |
| fn default() -> Entity { | |
| Entity {} | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Entity { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str(f, "Entity") | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::EntityTrait for Entity { | |
| type Model = Model; | |
| type Column = Column; | |
| type PrimaryKey = PrimaryKey; | |
| type Relation = Relation; | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Entity { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Entity { | |
| fn as_str(&self) -> &str { | |
| <Self as sea_orm::EntityName>::table_name(self) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::EntityName for Entity { | |
| fn schema_name(&self) -> Option<&str> { | |
| None | |
| } | |
| fn table_name(&self) -> &str { | |
| "docs" | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum PrimaryKey { | |
| /// Generated by sea-orm-macros | |
| Id, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for PrimaryKey {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for PrimaryKey { | |
| #[inline] | |
| fn clone(&self) -> PrimaryKey { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for PrimaryKey { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str(f, "Id") | |
| } | |
| } | |
| ///An iterator over the variants of [PrimaryKey] | |
| #[allow(missing_copy_implementations)] | |
| pub struct PrimaryKeyIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for PrimaryKeyIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("PrimaryKeyIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl PrimaryKeyIter { | |
| fn get(&self, idx: usize) -> Option<PrimaryKey> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(PrimaryKey::Id), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for PrimaryKey { | |
| type Iterator = PrimaryKeyIter; | |
| fn iter() -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for PrimaryKeyIter { | |
| type Item = PrimaryKey; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 1usize { | |
| 0 | |
| } else { | |
| 1usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 1usize { | |
| self.idx = 1usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for PrimaryKeyIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for PrimaryKeyIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 1usize { | |
| self.back_idx = 1usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(1usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for PrimaryKeyIter { | |
| fn clone(&self) -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for PrimaryKey { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for PrimaryKey { | |
| fn as_str(&self) -> &str { | |
| match self { | |
| Self::Id => "id", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::PrimaryKeyToColumn for PrimaryKey { | |
| type Column = Column; | |
| fn into_column(self) -> Self::Column { | |
| match self { | |
| Self::Id => Self::Column::Id, | |
| } | |
| } | |
| fn from_column(col: Self::Column) -> Option<Self> { | |
| match col { | |
| Self::Column::Id => Some(Self::Id), | |
| _ => None, | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl PrimaryKeyTrait for PrimaryKey { | |
| type ValueType = i32; | |
| fn auto_increment() -> bool { | |
| true | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::FromQueryResult for Model { | |
| fn from_query_result( | |
| row: &sea_orm::QueryResult, | |
| pre: &str, | |
| ) -> std::result::Result<Self, sea_orm::DbErr> { | |
| Ok (Self { id : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Id) . into ()) ? , workspace_id : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: WorkspaceId) . into ()) ? , created_at : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: CreatedAt) . into ()) ? , blob : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Blob) . into ()) ? , guid : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Guid) . into ()) ? , is_workspace : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: IsWorkspace) . into ()) ? , }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ModelTrait for Model { | |
| type Entity = Entity; | |
| fn get( | |
| &self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| ) -> sea_orm::Value { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Id => { | |
| self.id.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::CreatedAt => { | |
| self.created_at.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Blob => { | |
| self.blob.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Guid => { | |
| self.guid.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::IsWorkspace => { | |
| self.is_workspace.clone().into() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| fn set( | |
| &mut self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| v: sea_orm::Value, | |
| ) { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Id => { | |
| self.id = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::CreatedAt => { | |
| self.created_at = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Blob => { | |
| self.blob = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Guid => { | |
| self.guid = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::IsWorkspace => { | |
| self.is_workspace = v.unwrap() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct ActiveModel { | |
| /// Generated by sea-orm-macros | |
| pub id: sea_orm::ActiveValue<i32>, | |
| /// Generated by sea-orm-macros | |
| pub workspace_id: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub created_at: sea_orm::ActiveValue<DateTimeWithTimeZone>, | |
| /// Generated by sea-orm-macros | |
| pub blob: sea_orm::ActiveValue<Vec<u8>>, | |
| /// Generated by sea-orm-macros | |
| pub guid: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub is_workspace: sea_orm::ActiveValue<bool>, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for ActiveModel { | |
| #[inline] | |
| fn clone(&self) -> ActiveModel { | |
| ActiveModel { | |
| id: ::core::clone::Clone::clone(&self.id), | |
| workspace_id: ::core::clone::Clone::clone(&self.workspace_id), | |
| created_at: ::core::clone::Clone::clone(&self.created_at), | |
| blob: ::core::clone::Clone::clone(&self.blob), | |
| guid: ::core::clone::Clone::clone(&self.guid), | |
| is_workspace: ::core::clone::Clone::clone(&self.is_workspace), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for ActiveModel { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| let names: &'static _ = &[ | |
| "id", | |
| "workspace_id", | |
| "created_at", | |
| "blob", | |
| "guid", | |
| "is_workspace", | |
| ]; | |
| let values: &[&dyn ::core::fmt::Debug] = &[ | |
| &self.id, | |
| &self.workspace_id, | |
| &self.created_at, | |
| &self.blob, | |
| &self.guid, | |
| &&self.is_workspace, | |
| ]; | |
| ::core::fmt::Formatter::debug_struct_fields_finish(f, "ActiveModel", names, values) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for ActiveModel {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for ActiveModel { | |
| #[inline] | |
| fn eq(&self, other: &ActiveModel) -> bool { | |
| self.id == other.id | |
| && self.workspace_id == other.workspace_id | |
| && self.created_at == other.created_at | |
| && self.blob == other.blob | |
| && self.guid == other.guid | |
| && self.is_workspace == other.is_workspace | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::default::Default for ActiveModel { | |
| fn default() -> Self { | |
| <Self as sea_orm::ActiveModelBehavior>::new() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::From<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn from(m: <Entity as EntityTrait>::Model) -> Self { | |
| Self { | |
| id: sea_orm::ActiveValue::unchanged(m.id), | |
| workspace_id: sea_orm::ActiveValue::unchanged(m.workspace_id), | |
| created_at: sea_orm::ActiveValue::unchanged(m.created_at), | |
| blob: sea_orm::ActiveValue::unchanged(m.blob), | |
| guid: sea_orm::ActiveValue::unchanged(m.guid), | |
| is_workspace: sea_orm::ActiveValue::unchanged(m.is_workspace), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IntoActiveModel<ActiveModel> for <Entity as EntityTrait>::Model { | |
| fn into_active_model(self) -> ActiveModel { | |
| self.into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ActiveModelTrait for ActiveModel { | |
| type Entity = Entity; | |
| fn take( | |
| &mut self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.id); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.workspace_id); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.created_at); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.blob); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Guid => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.guid); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::IsWorkspace => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.is_workspace); | |
| value.into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn get( | |
| &self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => { | |
| self.id.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Guid => { | |
| self.guid.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::IsWorkspace => { | |
| self.is_workspace.clone().into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: sea_orm::Value) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => { | |
| self.id = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Guid => { | |
| self.guid = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::IsWorkspace => { | |
| self.is_workspace = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn not_set(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => { | |
| self.id = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Guid => { | |
| self.guid = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::IsWorkspace => { | |
| self.is_workspace = sea_orm::ActiveValue::not_set() | |
| } | |
| _ => {} | |
| } | |
| } | |
| fn is_not_set(&self, c: <Self::Entity as EntityTrait>::Column) -> bool { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => self.id.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.is_not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at.is_not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => self.blob.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Guid => self.guid.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::IsWorkspace => { | |
| self.is_workspace.is_not_set() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn default() -> Self { | |
| Self { | |
| id: sea_orm::ActiveValue::not_set(), | |
| workspace_id: sea_orm::ActiveValue::not_set(), | |
| created_at: sea_orm::ActiveValue::not_set(), | |
| blob: sea_orm::ActiveValue::not_set(), | |
| guid: sea_orm::ActiveValue::not_set(), | |
| is_workspace: sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn reset(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::Id => self.id.reset(), | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => self.workspace_id.reset(), | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => self.created_at.reset(), | |
| <Self::Entity as EntityTrait>::Column::Blob => self.blob.reset(), | |
| <Self::Entity as EntityTrait>::Column::Guid => self.guid.reset(), | |
| <Self::Entity as EntityTrait>::Column::IsWorkspace => self.is_workspace.reset(), | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::TryFrom<ActiveModel> for <Entity as EntityTrait>::Model { | |
| type Error = sea_orm::DbErr; | |
| fn try_from(a: ActiveModel) -> Result<Self, sea_orm::DbErr> { | |
| if match a.id { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("id".to_owned())); | |
| } | |
| if match a.workspace_id { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("workspace_id".to_owned())); | |
| } | |
| if match a.created_at { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("created_at".to_owned())); | |
| } | |
| if match a.blob { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("blob".to_owned())); | |
| } | |
| if match a.guid { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("guid".to_owned())); | |
| } | |
| if match a.is_workspace { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("is_workspace".to_owned())); | |
| } | |
| Ok(Self { | |
| id: a.id.into_value().unwrap().unwrap(), | |
| workspace_id: a.workspace_id.into_value().unwrap().unwrap(), | |
| created_at: a.created_at.into_value().unwrap().unwrap(), | |
| blob: a.blob.into_value().unwrap().unwrap(), | |
| guid: a.guid.into_value().unwrap().unwrap(), | |
| is_workspace: a.is_workspace.into_value().unwrap().unwrap(), | |
| }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::TryIntoModel<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn try_into_model(self) -> Result<<Entity as EntityTrait>::Model, sea_orm::DbErr> { | |
| self.try_into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::Eq for Model { | |
| #[inline] | |
| #[doc(hidden)] | |
| #[no_coverage] | |
| fn assert_receiver_is_total_eq(&self) -> () { | |
| let _: ::core::cmp::AssertParamIsEq<i32>; | |
| let _: ::core::cmp::AssertParamIsEq<String>; | |
| let _: ::core::cmp::AssertParamIsEq<DateTimeWithTimeZone>; | |
| let _: ::core::cmp::AssertParamIsEq<Vec<u8>>; | |
| let _: ::core::cmp::AssertParamIsEq<bool>; | |
| } | |
| } | |
| pub enum Relation {} | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Relation {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Relation { | |
| #[inline] | |
| fn clone(&self) -> Relation { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Relation { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| match *self {} | |
| } | |
| } | |
| ///An iterator over the variants of [Relation] | |
| #[allow(missing_copy_implementations)] | |
| pub struct RelationIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for RelationIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("RelationIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl RelationIter { | |
| fn get(&self, idx: usize) -> Option<Relation> { | |
| match idx { | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Relation { | |
| type Iterator = RelationIter; | |
| fn iter() -> RelationIter { | |
| RelationIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for RelationIter { | |
| type Item = Relation; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 0usize { | |
| 0 | |
| } else { | |
| 0usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 0usize { | |
| self.idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for RelationIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for RelationIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 0usize { | |
| self.back_idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(0usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for RelationIter { | |
| fn clone(&self) -> RelationIter { | |
| RelationIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::RelationTrait for Relation { | |
| fn def(&self) -> sea_orm::entity::RelationDef { | |
| match self { | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("No RelationDef for Relation")); | |
| } | |
| } | |
| } | |
| } | |
| impl ActiveModelBehavior for ActiveModel {} | |
| } | |
| pub mod optimized_blobs { | |
| //! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.2 | |
| use sea_orm::entity::prelude::*; | |
| #[sea_orm(table_name = "optimized_blobs")] | |
| pub struct Model { | |
| #[sea_orm(primary_key, auto_increment = false)] | |
| pub workspace_id: String, | |
| #[sea_orm(primary_key, auto_increment = false)] | |
| pub hash: String, | |
| #[sea_orm(column_type = "Binary(BlobSize::Blob(None))")] | |
| pub blob: Vec<u8>, | |
| pub length: i64, | |
| pub created_at: DateTimeWithTimeZone, | |
| #[sea_orm(primary_key, auto_increment = false)] | |
| pub params: String, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Model { | |
| #[inline] | |
| fn clone(&self) -> Model { | |
| Model { | |
| workspace_id: ::core::clone::Clone::clone(&self.workspace_id), | |
| hash: ::core::clone::Clone::clone(&self.hash), | |
| blob: ::core::clone::Clone::clone(&self.blob), | |
| length: ::core::clone::Clone::clone(&self.length), | |
| created_at: ::core::clone::Clone::clone(&self.created_at), | |
| params: ::core::clone::Clone::clone(&self.params), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Model { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| let names: &'static _ = &[ | |
| "workspace_id", | |
| "hash", | |
| "blob", | |
| "length", | |
| "created_at", | |
| "params", | |
| ]; | |
| let values: &[&dyn ::core::fmt::Debug] = &[ | |
| &self.workspace_id, | |
| &self.hash, | |
| &self.blob, | |
| &self.length, | |
| &self.created_at, | |
| &&self.params, | |
| ]; | |
| ::core::fmt::Formatter::debug_struct_fields_finish(f, "Model", names, values) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for Model { | |
| #[inline] | |
| fn eq(&self, other: &Model) -> bool { | |
| self.workspace_id == other.workspace_id | |
| && self.hash == other.hash | |
| && self.blob == other.blob | |
| && self.length == other.length | |
| && self.created_at == other.created_at | |
| && self.params == other.params | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum Column { | |
| /// Generated by sea-orm-macros | |
| WorkspaceId, | |
| /// Generated by sea-orm-macros | |
| Hash, | |
| /// Generated by sea-orm-macros | |
| Blob, | |
| /// Generated by sea-orm-macros | |
| Length, | |
| /// Generated by sea-orm-macros | |
| CreatedAt, | |
| /// Generated by sea-orm-macros | |
| Params, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Column {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Column { | |
| #[inline] | |
| fn clone(&self) -> Column { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Column { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str( | |
| f, | |
| match self { | |
| Column::WorkspaceId => "WorkspaceId", | |
| Column::Hash => "Hash", | |
| Column::Blob => "Blob", | |
| Column::Length => "Length", | |
| Column::CreatedAt => "CreatedAt", | |
| Column::Params => "Params", | |
| }, | |
| ) | |
| } | |
| } | |
| ///An iterator over the variants of [Column] | |
| #[allow(missing_copy_implementations)] | |
| pub struct ColumnIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for ColumnIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("ColumnIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl ColumnIter { | |
| fn get(&self, idx: usize) -> Option<Column> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(Column::WorkspaceId), | |
| 1usize => ::core::option::Option::Some(Column::Hash), | |
| 2usize => ::core::option::Option::Some(Column::Blob), | |
| 3usize => ::core::option::Option::Some(Column::Length), | |
| 4usize => ::core::option::Option::Some(Column::CreatedAt), | |
| 5usize => ::core::option::Option::Some(Column::Params), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Column { | |
| type Iterator = ColumnIter; | |
| fn iter() -> ColumnIter { | |
| ColumnIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for ColumnIter { | |
| type Item = Column; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 6usize { | |
| 0 | |
| } else { | |
| 6usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 6usize { | |
| self.idx = 6usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for ColumnIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for ColumnIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 6usize { | |
| self.back_idx = 6usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(6usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for ColumnIter { | |
| fn clone(&self) -> ColumnIter { | |
| ColumnIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl Column { | |
| fn default_as_str(&self) -> &str { | |
| match self { | |
| Self::WorkspaceId => "workspace_id", | |
| Self::Hash => "hash", | |
| Self::Blob => "blob", | |
| Self::Length => "length", | |
| Self::CreatedAt => "created_at", | |
| Self::Params => "params", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::str::FromStr for Column { | |
| type Err = sea_orm::ColumnFromStrErr; | |
| fn from_str(s: &str) -> std::result::Result<Self, Self::Err> { | |
| match s { | |
| "workspace_id" | "workspaceId" => Ok(Column::WorkspaceId), | |
| "hash" | "hash" => Ok(Column::Hash), | |
| "blob" | "blob" => Ok(Column::Blob), | |
| "length" | "length" => Ok(Column::Length), | |
| "created_at" | "createdAt" => Ok(Column::CreatedAt), | |
| "params" | "params" => Ok(Column::Params), | |
| _ => Err(sea_orm::ColumnFromStrErr(s.to_owned())), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Column { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Column { | |
| fn as_str(&self) -> &str { | |
| self.default_as_str() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::ColumnTrait for Column { | |
| type EntityName = Entity; | |
| fn def(&self) -> sea_orm::prelude::ColumnDef { | |
| match self { | |
| Self::WorkspaceId => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::Hash => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| Self::Blob => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::Binary(BlobSize::Blob(None)), | |
| ), | |
| Self::Length => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::BigInteger, | |
| ), | |
| Self::CreatedAt => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::TimestampWithTimeZone, | |
| ), | |
| Self::Params => sea_orm::prelude::ColumnTypeTrait::def( | |
| sea_orm::prelude::ColumnType::String(None), | |
| ), | |
| } | |
| } | |
| fn select_as(&self, expr: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::select_enum_as(self, expr), | |
| } | |
| } | |
| fn save_as(&self, val: sea_orm::sea_query::Expr) -> sea_orm::sea_query::SimpleExpr { | |
| match self { | |
| _ => sea_orm::prelude::ColumnTrait::save_enum_as(self, val), | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct Entity; | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Entity {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Entity { | |
| #[inline] | |
| fn clone(&self) -> Entity { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::default::Default for Entity { | |
| #[inline] | |
| fn default() -> Entity { | |
| Entity {} | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Entity { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str(f, "Entity") | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::EntityTrait for Entity { | |
| type Model = Model; | |
| type Column = Column; | |
| type PrimaryKey = PrimaryKey; | |
| type Relation = Relation; | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for Entity { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for Entity { | |
| fn as_str(&self) -> &str { | |
| <Self as sea_orm::EntityName>::table_name(self) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::prelude::EntityName for Entity { | |
| fn schema_name(&self) -> Option<&str> { | |
| None | |
| } | |
| fn table_name(&self) -> &str { | |
| "optimized_blobs" | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub enum PrimaryKey { | |
| /// Generated by sea-orm-macros | |
| WorkspaceId, | |
| /// Generated by sea-orm-macros | |
| Hash, | |
| /// Generated by sea-orm-macros | |
| Params, | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for PrimaryKey {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for PrimaryKey { | |
| #[inline] | |
| fn clone(&self) -> PrimaryKey { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for PrimaryKey { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| ::core::fmt::Formatter::write_str( | |
| f, | |
| match self { | |
| PrimaryKey::WorkspaceId => "WorkspaceId", | |
| PrimaryKey::Hash => "Hash", | |
| PrimaryKey::Params => "Params", | |
| }, | |
| ) | |
| } | |
| } | |
| ///An iterator over the variants of [PrimaryKey] | |
| #[allow(missing_copy_implementations)] | |
| pub struct PrimaryKeyIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for PrimaryKeyIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("PrimaryKeyIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl PrimaryKeyIter { | |
| fn get(&self, idx: usize) -> Option<PrimaryKey> { | |
| match idx { | |
| 0usize => ::core::option::Option::Some(PrimaryKey::WorkspaceId), | |
| 1usize => ::core::option::Option::Some(PrimaryKey::Hash), | |
| 2usize => ::core::option::Option::Some(PrimaryKey::Params), | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for PrimaryKey { | |
| type Iterator = PrimaryKeyIter; | |
| fn iter() -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for PrimaryKeyIter { | |
| type Item = PrimaryKey; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 3usize { | |
| 0 | |
| } else { | |
| 3usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 3usize { | |
| self.idx = 3usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for PrimaryKeyIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for PrimaryKeyIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 3usize { | |
| self.back_idx = 3usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(3usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for PrimaryKeyIter { | |
| fn clone(&self) -> PrimaryKeyIter { | |
| PrimaryKeyIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::Iden for PrimaryKey { | |
| fn unquoted(&self, s: &mut dyn std::fmt::Write) { | |
| s.write_fmt(format_args!("{0}", sea_orm::IdenStatic::as_str(self))) | |
| .unwrap(); | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IdenStatic for PrimaryKey { | |
| fn as_str(&self) -> &str { | |
| match self { | |
| Self::WorkspaceId => "workspace_id", | |
| Self::Hash => "hash", | |
| Self::Params => "params", | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::PrimaryKeyToColumn for PrimaryKey { | |
| type Column = Column; | |
| fn into_column(self) -> Self::Column { | |
| match self { | |
| Self::WorkspaceId => Self::Column::WorkspaceId, | |
| Self::Hash => Self::Column::Hash, | |
| Self::Params => Self::Column::Params, | |
| } | |
| } | |
| fn from_column(col: Self::Column) -> Option<Self> { | |
| match col { | |
| Self::Column::WorkspaceId => Some(Self::WorkspaceId), | |
| Self::Column::Hash => Some(Self::Hash), | |
| Self::Column::Params => Some(Self::Params), | |
| _ => None, | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl PrimaryKeyTrait for PrimaryKey { | |
| type ValueType = (String, String, String); | |
| fn auto_increment() -> bool { | |
| false | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::FromQueryResult for Model { | |
| fn from_query_result( | |
| row: &sea_orm::QueryResult, | |
| pre: &str, | |
| ) -> std::result::Result<Self, sea_orm::DbErr> { | |
| Ok (Self { workspace_id : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: WorkspaceId) . into ()) ? , hash : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Hash) . into ()) ? , blob : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Blob) . into ()) ? , length : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Length) . into ()) ? , created_at : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: CreatedAt) . into ()) ? , params : row . try_get (pre , sea_orm :: IdenStatic :: as_str (& < < Self as sea_orm :: ModelTrait > :: Entity as sea_orm :: entity :: EntityTrait > :: Column :: Params) . into ()) ? , }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ModelTrait for Model { | |
| type Entity = Entity; | |
| fn get( | |
| &self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| ) -> sea_orm::Value { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Hash => { | |
| self.hash.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Blob => { | |
| self.blob.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Length => { | |
| self.length.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::CreatedAt => { | |
| self.created_at.clone().into() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Params => { | |
| self.params.clone().into() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| fn set( | |
| &mut self, | |
| c: <Self::Entity as sea_orm::entity::EntityTrait>::Column, | |
| v: sea_orm::Value, | |
| ) { | |
| match c { | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Hash => { | |
| self.hash = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Blob => { | |
| self.blob = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Length => { | |
| self.length = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::CreatedAt => { | |
| self.created_at = v.unwrap() | |
| } | |
| <Self::Entity as sea_orm::entity::EntityTrait>::Column::Params => { | |
| self.params = v.unwrap() | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("field does not exist on Model")); | |
| } | |
| } | |
| } | |
| } | |
| /// Generated by sea-orm-macros | |
| pub struct ActiveModel { | |
| /// Generated by sea-orm-macros | |
| pub workspace_id: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub hash: sea_orm::ActiveValue<String>, | |
| /// Generated by sea-orm-macros | |
| pub blob: sea_orm::ActiveValue<Vec<u8>>, | |
| /// Generated by sea-orm-macros | |
| pub length: sea_orm::ActiveValue<i64>, | |
| /// Generated by sea-orm-macros | |
| pub created_at: sea_orm::ActiveValue<DateTimeWithTimeZone>, | |
| /// Generated by sea-orm-macros | |
| pub params: sea_orm::ActiveValue<String>, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for ActiveModel { | |
| #[inline] | |
| fn clone(&self) -> ActiveModel { | |
| ActiveModel { | |
| workspace_id: ::core::clone::Clone::clone(&self.workspace_id), | |
| hash: ::core::clone::Clone::clone(&self.hash), | |
| blob: ::core::clone::Clone::clone(&self.blob), | |
| length: ::core::clone::Clone::clone(&self.length), | |
| created_at: ::core::clone::Clone::clone(&self.created_at), | |
| params: ::core::clone::Clone::clone(&self.params), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for ActiveModel { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| let names: &'static _ = &[ | |
| "workspace_id", | |
| "hash", | |
| "blob", | |
| "length", | |
| "created_at", | |
| "params", | |
| ]; | |
| let values: &[&dyn ::core::fmt::Debug] = &[ | |
| &self.workspace_id, | |
| &self.hash, | |
| &self.blob, | |
| &self.length, | |
| &self.created_at, | |
| &&self.params, | |
| ]; | |
| ::core::fmt::Formatter::debug_struct_fields_finish(f, "ActiveModel", names, values) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralPartialEq for ActiveModel {} | |
| #[automatically_derived] | |
| impl ::core::cmp::PartialEq for ActiveModel { | |
| #[inline] | |
| fn eq(&self, other: &ActiveModel) -> bool { | |
| self.workspace_id == other.workspace_id | |
| && self.hash == other.hash | |
| && self.blob == other.blob | |
| && self.length == other.length | |
| && self.created_at == other.created_at | |
| && self.params == other.params | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::default::Default for ActiveModel { | |
| fn default() -> Self { | |
| <Self as sea_orm::ActiveModelBehavior>::new() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::From<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn from(m: <Entity as EntityTrait>::Model) -> Self { | |
| Self { | |
| workspace_id: sea_orm::ActiveValue::unchanged(m.workspace_id), | |
| hash: sea_orm::ActiveValue::unchanged(m.hash), | |
| blob: sea_orm::ActiveValue::unchanged(m.blob), | |
| length: sea_orm::ActiveValue::unchanged(m.length), | |
| created_at: sea_orm::ActiveValue::unchanged(m.created_at), | |
| params: sea_orm::ActiveValue::unchanged(m.params), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::IntoActiveModel<ActiveModel> for <Entity as EntityTrait>::Model { | |
| fn into_active_model(self) -> ActiveModel { | |
| self.into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::ActiveModelTrait for ActiveModel { | |
| type Entity = Entity; | |
| fn take( | |
| &mut self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.workspace_id); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.hash); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.blob); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.length); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.created_at); | |
| value.into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Params => { | |
| let mut value = sea_orm::ActiveValue::not_set(); | |
| std::mem::swap(&mut value, &mut self.params); | |
| value.into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn get( | |
| &self, | |
| c: <Self::Entity as EntityTrait>::Column, | |
| ) -> sea_orm::ActiveValue<sea_orm::Value> { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at.clone().into_wrapped_value() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Params => { | |
| self.params.clone().into_wrapped_value() | |
| } | |
| _ => sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn set(&mut self, c: <Self::Entity as EntityTrait>::Column, v: sea_orm::Value) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| <Self::Entity as EntityTrait>::Column::Params => { | |
| self.params = sea_orm::ActiveValue::set(v.unwrap()) | |
| } | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn not_set(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => { | |
| self.hash = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Blob => { | |
| self.blob = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Length => { | |
| self.length = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at = sea_orm::ActiveValue::not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Params => { | |
| self.params = sea_orm::ActiveValue::not_set() | |
| } | |
| _ => {} | |
| } | |
| } | |
| fn is_not_set(&self, c: <Self::Entity as EntityTrait>::Column) -> bool { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => { | |
| self.workspace_id.is_not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Hash => self.hash.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Blob => self.blob.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::Length => self.length.is_not_set(), | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => { | |
| self.created_at.is_not_set() | |
| } | |
| <Self::Entity as EntityTrait>::Column::Params => self.params.is_not_set(), | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| fn default() -> Self { | |
| Self { | |
| workspace_id: sea_orm::ActiveValue::not_set(), | |
| hash: sea_orm::ActiveValue::not_set(), | |
| blob: sea_orm::ActiveValue::not_set(), | |
| length: sea_orm::ActiveValue::not_set(), | |
| created_at: sea_orm::ActiveValue::not_set(), | |
| params: sea_orm::ActiveValue::not_set(), | |
| } | |
| } | |
| fn reset(&mut self, c: <Self::Entity as EntityTrait>::Column) { | |
| match c { | |
| <Self::Entity as EntityTrait>::Column::WorkspaceId => self.workspace_id.reset(), | |
| <Self::Entity as EntityTrait>::Column::Hash => self.hash.reset(), | |
| <Self::Entity as EntityTrait>::Column::Blob => self.blob.reset(), | |
| <Self::Entity as EntityTrait>::Column::Length => self.length.reset(), | |
| <Self::Entity as EntityTrait>::Column::CreatedAt => self.created_at.reset(), | |
| <Self::Entity as EntityTrait>::Column::Params => self.params.reset(), | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!( | |
| "This ActiveModel does not have this field" | |
| )); | |
| } | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl std::convert::TryFrom<ActiveModel> for <Entity as EntityTrait>::Model { | |
| type Error = sea_orm::DbErr; | |
| fn try_from(a: ActiveModel) -> Result<Self, sea_orm::DbErr> { | |
| if match a.workspace_id { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("workspace_id".to_owned())); | |
| } | |
| if match a.hash { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("hash".to_owned())); | |
| } | |
| if match a.blob { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("blob".to_owned())); | |
| } | |
| if match a.length { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("length".to_owned())); | |
| } | |
| if match a.created_at { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("created_at".to_owned())); | |
| } | |
| if match a.params { | |
| sea_orm::ActiveValue::NotSet => true, | |
| _ => false, | |
| } { | |
| return Err(sea_orm::DbErr::AttrNotSet("params".to_owned())); | |
| } | |
| Ok(Self { | |
| workspace_id: a.workspace_id.into_value().unwrap().unwrap(), | |
| hash: a.hash.into_value().unwrap().unwrap(), | |
| blob: a.blob.into_value().unwrap().unwrap(), | |
| length: a.length.into_value().unwrap().unwrap(), | |
| created_at: a.created_at.into_value().unwrap().unwrap(), | |
| params: a.params.into_value().unwrap().unwrap(), | |
| }) | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::TryIntoModel<<Entity as EntityTrait>::Model> for ActiveModel { | |
| fn try_into_model(self) -> Result<<Entity as EntityTrait>::Model, sea_orm::DbErr> { | |
| self.try_into() | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::marker::StructuralEq for Model {} | |
| #[automatically_derived] | |
| impl ::core::cmp::Eq for Model { | |
| #[inline] | |
| #[doc(hidden)] | |
| #[no_coverage] | |
| fn assert_receiver_is_total_eq(&self) -> () { | |
| let _: ::core::cmp::AssertParamIsEq<String>; | |
| let _: ::core::cmp::AssertParamIsEq<Vec<u8>>; | |
| let _: ::core::cmp::AssertParamIsEq<i64>; | |
| let _: ::core::cmp::AssertParamIsEq<DateTimeWithTimeZone>; | |
| } | |
| } | |
| pub enum Relation {} | |
| #[automatically_derived] | |
| impl ::core::marker::Copy for Relation {} | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for Relation { | |
| #[inline] | |
| fn clone(&self) -> Relation { | |
| *self | |
| } | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for Relation { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| match *self {} | |
| } | |
| } | |
| ///An iterator over the variants of [Relation] | |
| #[allow(missing_copy_implementations)] | |
| pub struct RelationIter { | |
| idx: usize, | |
| back_idx: usize, | |
| marker: ::core::marker::PhantomData<()>, | |
| } | |
| impl core::fmt::Debug for RelationIter { | |
| fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { | |
| f.debug_struct("RelationIter") | |
| .field("len", &self.len()) | |
| .finish() | |
| } | |
| } | |
| impl RelationIter { | |
| fn get(&self, idx: usize) -> Option<Relation> { | |
| match idx { | |
| _ => ::core::option::Option::None, | |
| } | |
| } | |
| } | |
| impl sea_orm::strum::IntoEnumIterator for Relation { | |
| type Iterator = RelationIter; | |
| fn iter() -> RelationIter { | |
| RelationIter { | |
| idx: 0, | |
| back_idx: 0, | |
| marker: ::core::marker::PhantomData, | |
| } | |
| } | |
| } | |
| impl Iterator for RelationIter { | |
| type Item = Relation; | |
| fn next(&mut self) -> Option<<Self as Iterator>::Item> { | |
| self.nth(0) | |
| } | |
| fn size_hint(&self) -> (usize, Option<usize>) { | |
| let t = if self.idx + self.back_idx >= 0usize { | |
| 0 | |
| } else { | |
| 0usize - self.idx - self.back_idx | |
| }; | |
| (t, Some(t)) | |
| } | |
| fn nth(&mut self, n: usize) -> Option<<Self as Iterator>::Item> { | |
| let idx = self.idx + n + 1; | |
| if idx + self.back_idx > 0usize { | |
| self.idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.idx = idx; | |
| self.get(idx - 1) | |
| } | |
| } | |
| } | |
| impl ExactSizeIterator for RelationIter { | |
| fn len(&self) -> usize { | |
| self.size_hint().0 | |
| } | |
| } | |
| impl DoubleEndedIterator for RelationIter { | |
| fn next_back(&mut self) -> Option<<Self as Iterator>::Item> { | |
| let back_idx = self.back_idx + 1; | |
| if self.idx + back_idx > 0usize { | |
| self.back_idx = 0usize; | |
| ::core::option::Option::None | |
| } else { | |
| self.back_idx = back_idx; | |
| self.get(0usize - self.back_idx) | |
| } | |
| } | |
| } | |
| impl Clone for RelationIter { | |
| fn clone(&self) -> RelationIter { | |
| RelationIter { | |
| idx: self.idx, | |
| back_idx: self.back_idx, | |
| marker: self.marker.clone(), | |
| } | |
| } | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::entity::RelationTrait for Relation { | |
| fn def(&self) -> sea_orm::entity::RelationDef { | |
| match self { | |
| _ => { | |
| ::core::panicking::panic_fmt(format_args!("No RelationDef for Relation")); | |
| } | |
| } | |
| } | |
| } | |
| impl ActiveModelBehavior for ActiveModel {} | |
| } | |
| } | |
| mod rate_limiter { | |
| use std::{num::NonZeroU32, sync::Arc}; | |
| use governor::{ | |
| clock::{QuantaClock, QuantaInstant}, | |
| middleware::NoOpMiddleware, | |
| state::{InMemoryState, NotKeyed}, | |
| Quota, RateLimiter, | |
| }; | |
| use tokio::sync::{OwnedSemaphorePermit, RwLock, RwLockReadGuard, RwLockWriteGuard, Semaphore}; | |
| use url::Url; | |
| pub enum BucketLocker<'a> { | |
| Semaphore(OwnedSemaphorePermit), | |
| ReadLock(RwLockReadGuard<'a, ()>), | |
| WriteLock(RwLockWriteGuard<'a, ()>), | |
| } | |
| enum BucketLock { | |
| Semaphore(Arc<Semaphore>), | |
| RwLock(Arc<RwLock<()>>), | |
| } | |
| pub struct Bucket { | |
| bucket: | |
| Arc<RateLimiter<NotKeyed, InMemoryState, QuantaClock, NoOpMiddleware<QuantaInstant>>>, | |
| lock: BucketLock, | |
| } | |
| impl Bucket { | |
| fn new(bucket_size: u32, semaphore_size: usize) -> Self { | |
| let bucket_size = | |
| NonZeroU32::new(bucket_size).unwrap_or(unsafe { NonZeroU32::new_unchecked(1) }); | |
| Self { | |
| bucket: Arc::new(RateLimiter::direct( | |
| Quota::per_second(bucket_size).allow_burst(bucket_size), | |
| )), | |
| lock: if semaphore_size > 1 { | |
| BucketLock::Semaphore(Arc::new(Semaphore::new(semaphore_size))) | |
| } else { | |
| BucketLock::RwLock(Arc::default()) | |
| }, | |
| } | |
| } | |
| pub async fn read(&self) -> BucketLocker { | |
| self.bucket.until_ready().await; | |
| match &self.lock { | |
| BucketLock::RwLock(lock) => BucketLocker::ReadLock(lock.read().await), | |
| BucketLock::Semaphore(semaphore) => { | |
| BucketLocker::Semaphore(semaphore.clone().acquire_owned().await.unwrap()) | |
| } | |
| } | |
| } | |
| pub async fn write(&self) -> BucketLocker { | |
| self.bucket.until_ready().await; | |
| match &self.lock { | |
| BucketLock::RwLock(lock) => BucketLocker::WriteLock(lock.write().await), | |
| BucketLock::Semaphore(semaphore) => { | |
| BucketLocker::Semaphore(semaphore.clone().acquire_owned().await.unwrap()) | |
| } | |
| } | |
| } | |
| } | |
| #[inline] | |
| pub fn is_sqlite(database: &str) -> bool { | |
| Url::parse(database) | |
| .map(|u| u.scheme() == "sqlite") | |
| .unwrap_or(false) | |
| } | |
| #[inline] | |
| pub fn get_bucket(single_thread: bool) -> Arc<Bucket> { | |
| Arc::new(Bucket::new( | |
| if single_thread { 10 } else { 25 }, | |
| if single_thread { 1 } else { 5 }, | |
| )) | |
| } | |
| } | |
| mod storage { | |
| pub(crate) mod blobs { | |
| mod blob_storage { | |
| use jwst_core::{Base64Engine, URL_SAFE_ENGINE}; | |
| use sha2::{Digest, Sha256}; | |
| use super::*; | |
| pub(super) type BlobModel = <Blobs as EntityTrait>::Model; | |
| type BlobActiveModel = super::entities::blobs::ActiveModel; | |
| type BlobColumn = <Blobs as EntityTrait>::Column; | |
| pub struct BlobDBStorage { | |
| bucket: Arc<Bucket>, | |
| pub(super) pool: DatabaseConnection, | |
| } | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for BlobDBStorage { | |
| #[inline] | |
| fn clone(&self) -> BlobDBStorage { | |
| BlobDBStorage { | |
| bucket: ::core::clone::Clone::clone(&self.bucket), | |
| pool: ::core::clone::Clone::clone(&self.pool), | |
| } | |
| } | |
| } | |
| impl AsRef<DatabaseConnection> for BlobDBStorage { | |
| fn as_ref(&self) -> &DatabaseConnection { | |
| &self.pool | |
| } | |
| } | |
| impl BlobDBStorage { | |
| pub async fn init_with_pool( | |
| pool: DatabaseConnection, | |
| bucket: Arc<Bucket>, | |
| ) -> JwstStorageResult<Self> { | |
| Ok(Self { bucket, pool }) | |
| } | |
| pub async fn init_pool(database: &str) -> JwstStorageResult<Self> { | |
| let is_sqlite = is_sqlite(database); | |
| let pool = create_connection(database, is_sqlite).await?; | |
| Self::init_with_pool(pool, get_bucket(is_sqlite)).await | |
| } | |
| #[allow(unused)] | |
| async fn all(&self, workspace: &str) -> Result<Vec<BlobModel>, DbErr> { | |
| Blobs::find() | |
| .filter(BlobColumn::WorkspaceId.eq(workspace)) | |
| .all(&self.pool) | |
| .await | |
| } | |
| async fn keys(&self, workspace: &str) -> Result<Vec<String>, DbErr> { | |
| Blobs::find() | |
| .filter(BlobColumn::WorkspaceId.eq(workspace)) | |
| .column(BlobColumn::Hash) | |
| .all(&self.pool) | |
| .await | |
| .map(|r| r.into_iter().map(|f| f.hash).collect()) | |
| } | |
| #[allow(unused)] | |
| async fn count(&self, workspace: &str) -> Result<u64, DbErr> { | |
| Blobs::find() | |
| .filter(BlobColumn::WorkspaceId.eq(workspace)) | |
| .count(&self.pool) | |
| .await | |
| } | |
| async fn exists(&self, workspace: &str, hash: &str) -> Result<bool, DbErr> { | |
| Blobs::find_by_id((workspace.into(), hash.into())) | |
| .count(&self.pool) | |
| .await | |
| .map(|c| c > 0) | |
| } | |
| pub(super) async fn metadata( | |
| &self, | |
| workspace: &str, | |
| hash: &str, | |
| ) -> JwstBlobResult<InternalBlobMetadata> { | |
| Blobs::find_by_id((workspace.into(), hash.into())) | |
| .select_only() | |
| .column_as(BlobColumn::Length, "size") | |
| .column_as(BlobColumn::CreatedAt, "created_at") | |
| .into_model::<InternalBlobMetadata>() | |
| .one(&self.pool) | |
| .await | |
| .map_err(|e| e.into()) | |
| .and_then(|r| r.ok_or(JwstBlobError::BlobNotFound(hash.into()))) | |
| } | |
| pub(super) async fn get_blobs_size( | |
| &self, | |
| workspaces: &[String], | |
| ) -> Result<Option<i64>, DbErr> { | |
| Blobs::find() | |
| .filter(BlobColumn::WorkspaceId.is_in(workspaces)) | |
| .select_only() | |
| .column_as( | |
| BlobColumn::Length.sum().cast_as(Alias::new("bigint")), | |
| "size", | |
| ) | |
| .into_tuple::<Option<i64>>() | |
| .one(&self.pool) | |
| .await | |
| .map(|r| r.flatten()) | |
| } | |
| async fn insert( | |
| &self, | |
| workspace: &str, | |
| hash: &str, | |
| blob: &[u8], | |
| ) -> Result<(), DbErr> { | |
| if !self.exists(workspace, hash).await? { | |
| Blobs::insert(BlobActiveModel { | |
| workspace_id: Set(workspace.into()), | |
| hash: Set(hash.into()), | |
| blob: Set(blob.into()), | |
| length: Set(blob.len().try_into().unwrap()), | |
| created_at: Set(Utc::now().into()), | |
| }) | |
| .exec(&self.pool) | |
| .await?; | |
| } | |
| Ok(()) | |
| } | |
| pub(super) async fn get( | |
| &self, | |
| workspace: &str, | |
| hash: &str, | |
| ) -> JwstBlobResult<BlobModel> { | |
| Blobs::find_by_id((workspace.into(), hash.into())) | |
| .one(&self.pool) | |
| .await | |
| .map_err(|e| e.into()) | |
| .and_then(|r| r.ok_or(JwstBlobError::BlobNotFound(hash.into()))) | |
| } | |
| async fn delete(&self, workspace: &str, hash: &str) -> Result<bool, DbErr> { | |
| Blobs::delete_by_id((workspace.into(), hash.into())) | |
| .exec(&self.pool) | |
| .await | |
| .map(|r| r.rows_affected == 1) | |
| } | |
| async fn drop(&self, workspace: &str) -> Result<(), DbErr> { | |
| Blobs::delete_many() | |
| .filter(BlobColumn::WorkspaceId.eq(workspace)) | |
| .exec(&self.pool) | |
| .await?; | |
| Ok(()) | |
| } | |
| } | |
| impl BlobStorage<JwstStorageError> for BlobDBStorage { | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn list_blobs<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<Vec<String>>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<Vec<String>>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let __ret: JwstStorageResult<Vec<String>> = { | |
| let _lock = __self.bucket.read().await; | |
| let workspace = workspace.unwrap_or("__default__".into()); | |
| if let Ok(keys) = __self.keys(&workspace).await { | |
| return Ok(keys); | |
| } | |
| Err(JwstStorageError::WorkspaceNotFound(workspace)) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn check_blob<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| id: String, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<bool>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<bool>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let id = id; | |
| let __ret: JwstStorageResult<bool> = { | |
| let _lock = __self.bucket.read().await; | |
| let workspace = workspace.unwrap_or("__default__".into()); | |
| if let Ok(exists) = __self.exists(&workspace, &id).await { | |
| return Ok(exists); | |
| } | |
| Err(JwstStorageError::WorkspaceNotFound(workspace)) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn get_blob<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| id: String, | |
| _params: Option<HashMap<String, String>>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<Vec<u8>>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<Vec<u8>>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let id = id; | |
| let _params = _params; | |
| let __ret: JwstStorageResult<Vec<u8>> = { | |
| let _lock = __self.bucket.read().await; | |
| let workspace = workspace.unwrap_or("__default__".into()); | |
| if let Ok(blob) = __self.get(&workspace, &id).await { | |
| return Ok(blob.blob); | |
| } | |
| Err(JwstStorageError::WorkspaceNotFound(workspace)) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn get_metadata<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| id: String, | |
| _params: Option<HashMap<String, String>>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<BlobMetadata>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<BlobMetadata>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let id = id; | |
| let _params = _params; | |
| let __ret: JwstStorageResult<BlobMetadata> = { | |
| let _lock = __self.bucket.read().await; | |
| let workspace = workspace.unwrap_or("__default__".into()); | |
| if let Ok(metadata) = __self.metadata(&workspace, &id).await { | |
| Ok(metadata.into()) | |
| } else { | |
| Err(JwstStorageError::WorkspaceNotFound(workspace)) | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn put_blob_stream<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| stream: impl 'async_trait + Stream<Item = Bytes> + Send, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<String>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<String>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let stream = stream; | |
| let __ret: JwstStorageResult<String> = { | |
| let _lock = __self.bucket.write().await; | |
| let workspace = workspace.unwrap_or("__default__".into()); | |
| let (hash, blob) = get_hash(stream).await; | |
| if __self.insert(&workspace, &hash, &blob).await.is_ok() { | |
| Ok(hash) | |
| } else { | |
| Err(JwstStorageError::WorkspaceNotFound(workspace)) | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn put_blob<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| blob: Vec<u8>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<String>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<String>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let blob = blob; | |
| let __ret: JwstStorageResult<String> = { | |
| let _lock = __self.bucket.write().await; | |
| let workspace = workspace.unwrap_or("__default__".into()); | |
| let mut hasher = Sha256::new(); | |
| hasher.update(&blob); | |
| let hash = URL_SAFE_ENGINE.encode(hasher.finalize()); | |
| if __self.insert(&workspace, &hash, &blob).await.is_ok() { | |
| Ok(hash) | |
| } else { | |
| Err(JwstStorageError::WorkspaceNotFound(workspace)) | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn delete_blob<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: Option<String>, | |
| id: String, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<bool>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<bool>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace_id = workspace_id; | |
| let id = id; | |
| let __ret: JwstStorageResult<bool> = { | |
| let _lock = __self.bucket.write().await; | |
| let workspace_id = workspace_id.unwrap_or("__default__".into()); | |
| if let Ok(success) = __self.delete(&workspace_id, &id).await { | |
| Ok(success) | |
| } else { | |
| Err(JwstStorageError::WorkspaceNotFound(workspace_id)) | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn delete_workspace<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: String, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<()>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<()>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace_id = workspace_id; | |
| let __ret: JwstStorageResult<()> = { | |
| let _lock = __self.bucket.write().await; | |
| if __self.drop(&workspace_id).await.is_ok() { | |
| Ok(()) | |
| } else { | |
| Err(JwstStorageError::WorkspaceNotFound(workspace_id)) | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn get_blobs_size<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspaces: Vec<String>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<i64>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<i64>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspaces = workspaces; | |
| let __ret: JwstStorageResult<i64> = { | |
| let _lock = __self.bucket.read().await; | |
| let size = __self.get_blobs_size(&workspaces).await?; | |
| return Ok(size.unwrap_or(0)); | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| } | |
| } | |
| mod utils { | |
| use bytes::Bytes; | |
| use chrono::{DateTime, Utc}; | |
| use futures::{ | |
| stream::{iter, StreamExt}, | |
| Stream, | |
| }; | |
| use jwst_core::{Base64Engine, BlobMetadata, URL_SAFE_ENGINE}; | |
| use sea_orm::FromQueryResult; | |
| use sha2::{Digest, Sha256}; | |
| pub async fn get_hash(stream: impl Stream<Item = Bytes> + Send) -> (String, Vec<u8>) { | |
| let mut hasher = Sha256::new(); | |
| let buffer = stream | |
| .flat_map(|buffer| { | |
| hasher.update(&buffer); | |
| iter(buffer) | |
| }) | |
| .collect() | |
| .await; | |
| let hash = URL_SAFE_ENGINE.encode(hasher.finalize()); | |
| (hash, buffer) | |
| } | |
| pub(super) struct InternalBlobMetadata { | |
| pub(super) size: i64, | |
| pub(super) created_at: DateTime<Utc>, | |
| } | |
| #[automatically_derived] | |
| impl sea_orm::FromQueryResult for InternalBlobMetadata { | |
| fn from_query_result( | |
| row: &sea_orm::QueryResult, | |
| pre: &str, | |
| ) -> std::result::Result<Self, sea_orm::DbErr> { | |
| Ok(Self { | |
| size: row.try_get(pre, "size")?, | |
| created_at: row.try_get(pre, "created_at")?, | |
| }) | |
| } | |
| } | |
| impl From<InternalBlobMetadata> for BlobMetadata { | |
| fn from(val: InternalBlobMetadata) -> Self { | |
| BlobMetadata { | |
| content_type: "application/octet-stream".into(), | |
| last_modified: val.created_at.naive_local(), | |
| size: val.size, | |
| } | |
| } | |
| } | |
| } | |
| pub use blob_storage::BlobDBStorage; | |
| use bytes::Bytes; | |
| use jwst_core::{BlobMetadata, BlobStorage}; | |
| use jwst_storage_migration::Alias; | |
| use thiserror::Error; | |
| use tokio::task::JoinError; | |
| use utils::{get_hash, InternalBlobMetadata}; | |
| use super::{entities::prelude::*, *}; | |
| pub enum JwstBlobError { | |
| #[error("blob not found: {0}")] | |
| BlobNotFound(String), | |
| #[error("database error")] | |
| Database(#[from] DbErr), | |
| #[error("failed to optimize image")] | |
| ImageThread(#[from] JoinError), | |
| #[error("optimize params error: {0:?}")] | |
| ImageParams(HashMap<String, String>), | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for JwstBlobError { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| match self { | |
| JwstBlobError::BlobNotFound(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish( | |
| f, | |
| "BlobNotFound", | |
| &__self_0, | |
| ) | |
| } | |
| JwstBlobError::Database(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Database", &__self_0) | |
| } | |
| JwstBlobError::ImageThread(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish( | |
| f, | |
| "ImageThread", | |
| &__self_0, | |
| ) | |
| } | |
| JwstBlobError::ImageParams(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish( | |
| f, | |
| "ImageParams", | |
| &__self_0, | |
| ) | |
| } | |
| } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::error::Error for JwstBlobError { | |
| fn source(&self) -> std::option::Option<&(dyn std::error::Error + 'static)> { | |
| use thiserror::__private::AsDynError; | |
| #[allow(deprecated)] | |
| match self { | |
| JwstBlobError::BlobNotFound { .. } => std::option::Option::None, | |
| JwstBlobError::Database { 0: source, .. } => { | |
| std::option::Option::Some(source.as_dyn_error()) | |
| } | |
| JwstBlobError::ImageThread { 0: source, .. } => { | |
| std::option::Option::Some(source.as_dyn_error()) | |
| } | |
| JwstBlobError::ImageParams { .. } => std::option::Option::None, | |
| } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::fmt::Display for JwstBlobError { | |
| fn fmt(&self, __formatter: &mut std::fmt::Formatter) -> std::fmt::Result { | |
| #[allow(unused_imports)] | |
| use thiserror::__private::{DisplayAsDisplay, PathAsDisplay}; | |
| #[allow(unused_variables, deprecated, clippy::used_underscore_binding)] | |
| match self { | |
| JwstBlobError::BlobNotFound(_0) => { | |
| __formatter.write_fmt(format_args!("blob not found: {0}", _0.as_display())) | |
| } | |
| JwstBlobError::Database(_0) => { | |
| __formatter.write_fmt(format_args!("database error")) | |
| } | |
| JwstBlobError::ImageThread(_0) => { | |
| __formatter.write_fmt(format_args!("failed to optimize image")) | |
| } | |
| JwstBlobError::ImageParams(_0) => { | |
| __formatter.write_fmt(format_args!("optimize params error: {0:?}", _0)) | |
| } | |
| } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::convert::From<DbErr> for JwstBlobError { | |
| #[allow(deprecated)] | |
| fn from(source: DbErr) -> Self { | |
| JwstBlobError::Database { 0: source } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::convert::From<JoinError> for JwstBlobError { | |
| #[allow(deprecated)] | |
| fn from(source: JoinError) -> Self { | |
| JwstBlobError::ImageThread { 0: source } | |
| } | |
| } | |
| pub type JwstBlobResult<T> = Result<T, JwstBlobError>; | |
| pub enum JwstBlobStorage { | |
| RawStorage(Arc<BlobDBStorage>), | |
| } | |
| pub enum BlobStorageType { | |
| DB, | |
| } | |
| impl BlobStorage<JwstStorageError> for JwstBlobStorage { | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn list_blobs<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<Vec<String>, JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<Vec<String>, JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let __ret: JwstResult<Vec<String>, JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => db.list_blobs(workspace).await, | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn check_blob<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| id: String, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<bool, JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<bool, JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let id = id; | |
| let __ret: JwstResult<bool, JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => db.check_blob(workspace, id).await, | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn get_blob<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| id: String, | |
| params: Option<HashMap<String, String>>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<Vec<u8>, JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<Vec<u8>, JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let id = id; | |
| let params = params; | |
| let __ret: JwstResult<Vec<u8>, JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => { | |
| db.get_blob(workspace, id, params).await | |
| } | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn get_metadata<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| id: String, | |
| params: Option<HashMap<String, String>>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<BlobMetadata, JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<BlobMetadata, JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let id = id; | |
| let params = params; | |
| let __ret: JwstResult<BlobMetadata, JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => { | |
| db.get_metadata(workspace, id, params).await | |
| } | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn put_blob_stream<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| stream: impl 'async_trait + Stream<Item = Bytes> + Send, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<String, JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<String, JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let stream = stream; | |
| let __ret: JwstResult<String, JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => { | |
| db.put_blob_stream(workspace, stream).await | |
| } | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn put_blob<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| blob: Vec<u8>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<String, JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<String, JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let blob = blob; | |
| let __ret: JwstResult<String, JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => db.put_blob(workspace, blob).await, | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn delete_blob<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace: Option<String>, | |
| id: String, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<bool, JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<bool, JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace = workspace; | |
| let id = id; | |
| let __ret: JwstResult<bool, JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => db.delete_blob(workspace, id).await, | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn delete_workspace<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: String, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<(), JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<(), JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace_id = workspace_id; | |
| let __ret: JwstResult<(), JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => { | |
| db.delete_workspace(workspace_id).await | |
| } | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn get_blobs_size<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspaces: Vec<String>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstResult<i64, JwstStorageError>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstResult<i64, JwstStorageError>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspaces = workspaces; | |
| let __ret: JwstResult<i64, JwstStorageError> = { | |
| match __self { | |
| JwstBlobStorage::RawStorage(db) => { | |
| Ok(db.get_blobs_size(&workspaces).await?.unwrap_or(0)) | |
| } | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| } | |
| impl JwstBlobStorage { | |
| pub fn get_blob_db(&self) -> Option<Arc<BlobDBStorage>> { | |
| match self { | |
| JwstBlobStorage::RawStorage(db) => Some(db.clone()), | |
| } | |
| } | |
| } | |
| } | |
| mod docs { | |
| mod database { | |
| use std::collections::hash_map::Entry; | |
| use jwst_codec::{ | |
| encode_update_as_message, CrdtReader, Doc, DocOptions, RawDecoder, StateVector, | |
| }; | |
| use jwst_core::{DocStorage, Workspace}; | |
| use sea_orm::Condition; | |
| use super::{entities::prelude::*, *}; | |
| use crate::types::JwstStorageResult; | |
| const MAX_TRIM_UPDATE_LIMIT: u64 = 500; | |
| type DocsModel = <Docs as EntityTrait>::Model; | |
| type DocsActiveModel = super::entities::docs::ActiveModel; | |
| type DocsColumn = <Docs as EntityTrait>::Column; | |
| pub struct DocDBStorage { | |
| bucket: Arc<Bucket>, | |
| pub(super) pool: DatabaseConnection, | |
| workspaces: RwLock<HashMap<String, Workspace>>, | |
| remote: RwLock<HashMap<String, Sender<Vec<u8>>>>, | |
| } | |
| impl DocDBStorage { | |
| pub async fn init_with_pool( | |
| pool: DatabaseConnection, | |
| bucket: Arc<Bucket>, | |
| ) -> JwstStorageResult<Self> { | |
| Ok(Self { | |
| bucket, | |
| pool, | |
| workspaces: RwLock::new(HashMap::new()), | |
| remote: RwLock::new(HashMap::new()), | |
| }) | |
| } | |
| pub async fn init_pool(database: &str) -> JwstStorageResult<Self> { | |
| let is_sqlite = is_sqlite(database); | |
| let pool = create_connection(database, is_sqlite).await?; | |
| Self::init_with_pool(pool, get_bucket(is_sqlite)).await | |
| } | |
| pub fn remote(&self) -> &RwLock<HashMap<String, Sender<Vec<u8>>>> { | |
| &self.remote | |
| } | |
| /// warn: records of the same workspace may belong to different doc | |
| #[allow(unused)] | |
| async fn workspace_all<C>( | |
| conn: &C, | |
| workspace: &str, | |
| ) -> JwstStorageResult<Vec<DocsModel>> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:50", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(50u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "start scan all records of workspace: {0}", | |
| workspace | |
| ) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start scan all records of workspace: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let models = Docs::find() | |
| .filter(DocsColumn::WorkspaceId.eq(workspace)) | |
| .all(conn) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:55", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(55u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "end scan all records of workspace: {1}, {0}", | |
| models.len(), | |
| workspace | |
| ) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end scan all records of workspace: {1}, {0}" , models . len () , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(models) | |
| } | |
| async fn doc_all<C>(conn: &C, guid: &str) -> JwstStorageResult<Vec<DocsModel>> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:63", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(63u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "start scan all records with guid: {0}", | |
| guid | |
| ) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start scan all records with guid: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let models = Docs::find() | |
| .filter(DocsColumn::Guid.eq(guid)) | |
| .all(conn) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:65", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(65u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some( | |
| &format_args!("end scan all: {1}, {0}", models.len(), guid) | |
| as &dyn Value, | |
| ), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end scan all: {1}, {0}" , models . len () , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(models) | |
| } | |
| async fn count<C>(conn: &C, guid: &str) -> JwstStorageResult<u64> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:73", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(73u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("start count: {0}", guid) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start count: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let count = Docs::find() | |
| .filter(DocsColumn::Guid.eq(guid)) | |
| .count(conn) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:75", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(75u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("end count: {0}, {1}", guid, count) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end count: {0}, {1}" , guid , count) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(count) | |
| } | |
| async fn workspace_count<C>(conn: &C, workspace: &str) -> JwstStorageResult<u64> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:83", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(83u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start count: {0}" , workspace) as & dyn Value))]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start count: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let count = Docs::find() | |
| .filter(DocsColumn::WorkspaceId.eq(workspace)) | |
| .count(conn) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:88", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(88u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("end count: {0}, {1}", workspace, count) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end count: {0}, {1}" , workspace , count) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(count) | |
| } | |
| async fn workspace_guid<C>( | |
| conn: &C, | |
| workspace: &str, | |
| ) -> JwstStorageResult<Option<String>> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| let record = Docs::find() | |
| .filter( | |
| Condition::all() | |
| .add(DocsColumn::WorkspaceId.eq(workspace)) | |
| .add(DocsColumn::IsWorkspace.eq(true)), | |
| ) | |
| .one(conn) | |
| .await?; | |
| Ok(record.map(|r| r.guid)) | |
| } | |
| async fn is_workspace<C>(conn: &C, guid: &str) -> JwstStorageResult<bool> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| let record = Docs::find() | |
| .filter(DocsColumn::Guid.eq(guid)) | |
| .one(conn) | |
| .await?; | |
| Ok(record.map_or(false, |r| r.is_workspace)) | |
| } | |
| async fn insert<C>( | |
| conn: &C, | |
| workspace: &str, | |
| guid: &str, | |
| blob: &[u8], | |
| ) -> JwstStorageResult<()> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| let workspace_guid = Self::workspace_guid(conn, workspace).await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:122", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(122u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some( | |
| &format_args!("start insert: {0}", workspace) as &dyn Value | |
| ), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start insert: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Docs::insert(DocsActiveModel { | |
| workspace_id: Set(workspace.into()), | |
| guid: Set(guid.into()), | |
| blob: Set(blob.into()), | |
| created_at: Set(Utc::now().into()), | |
| is_workspace: Set(workspace_guid.map_or(true, |g| g == guid)), | |
| ..Default::default() | |
| }) | |
| .exec(conn) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:134", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(134u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("end insert: {0}", workspace) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end insert: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(()) | |
| } | |
| async fn replace_with<C>( | |
| conn: &C, | |
| workspace: &str, | |
| guid: &str, | |
| blob: Vec<u8>, | |
| ) -> JwstStorageResult<()> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:142", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(142u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("start replace: {0}", guid) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start replace: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let is_workspace = Self::is_workspace(conn, guid).await?; | |
| Docs::delete_many() | |
| .filter(DocsColumn::Guid.eq(guid)) | |
| .exec(conn) | |
| .await?; | |
| Docs::insert(DocsActiveModel { | |
| workspace_id: Set(workspace.into()), | |
| guid: Set(guid.into()), | |
| blob: Set(blob), | |
| is_workspace: Set(is_workspace), | |
| created_at: Set(Utc::now().into()), | |
| ..Default::default() | |
| }) | |
| .exec(conn) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:157", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(157u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end replace: {0}" , workspace) as & dyn Value))]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end replace: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(()) | |
| } | |
| pub async fn delete<C>(conn: &C, guid: &str) -> JwstStorageResult<()> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:165", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(165u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("start drop: {0}", guid) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start drop: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Docs::delete_many() | |
| .filter(DocsColumn::Guid.eq(guid)) | |
| .exec(conn) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:167", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(167u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("end drop: {0}", guid) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end drop: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(()) | |
| } | |
| pub async fn delete_workspace<C>( | |
| conn: &C, | |
| workspace_id: &str, | |
| ) -> JwstStorageResult<()> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:175", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(175u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("start drop workspace: {0}", workspace_id) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start drop workspace: {0}" , workspace_id) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Docs::delete_many() | |
| .filter(DocsColumn::WorkspaceId.eq(workspace_id)) | |
| .exec(conn) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:180", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(180u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("end drop workspace: {0}", workspace_id) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end drop workspace: {0}" , workspace_id) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(()) | |
| } | |
| async fn update<C>( | |
| &self, | |
| conn: &C, | |
| workspace: &str, | |
| guid: &str, | |
| blob: Vec<u8>, | |
| ) -> JwstStorageResult<()> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:188", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(188u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("start update: {0}", guid) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start update: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let update_size = Self::count(conn, guid).await?; | |
| if update_size > MAX_TRIM_UPDATE_LIMIT - 1 { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:191", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(191u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "full migrate update: {0}, {1}", | |
| guid, update_size | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("full migrate update: {0}, {1}" , guid , update_size) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let doc_records = Self::doc_all(conn, guid).await?; | |
| let data = tokio::task::spawn_blocking(move || { | |
| utils::merge_doc_records(doc_records) | |
| }) | |
| .await | |
| .map_err(JwstStorageError::DocMerge)??; | |
| Self::replace_with(conn, workspace, guid, data).await?; | |
| } | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:201", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(201u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some( | |
| &format_args!("insert update: {0}, {1}", guid, update_size) | |
| as &dyn Value, | |
| ), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("insert update: {0}, {1}" , guid , update_size) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Self::insert(conn, workspace, guid, &blob).await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:203", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(203u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("end update: {0}", guid) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end update: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:205", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(205u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("update {0}bytes to {1}", blob.len(), guid) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("update {0}bytes to {1}" , blob . len () , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| if let Entry::Occupied(remote) = self.remote.write().await.entry(guid.into()) { | |
| let broadcast = &remote.get(); | |
| if broadcast.send(encode_update_as_message(blob)?).is_err() { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:210" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: WARN , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (210u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::WARN | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::WARN | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "send {0} update to pipeline failed", | |
| guid | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("send {0} update to pipeline failed" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| } | |
| } | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:213", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(213u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("end update broadcast: {0}", guid) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end update broadcast: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(()) | |
| } | |
| async fn full_migrate( | |
| &self, | |
| workspace: &str, | |
| guid: &str, | |
| blob: Vec<u8>, | |
| ) -> JwstStorageResult<()> { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:219", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(219u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("start full migrate: {0}", guid) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start full migrate: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Self::replace_with(&self.pool, workspace, guid, blob).await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:221", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(221u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end full migrate: {0}" , guid) as & dyn Value))]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end full migrate: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(()) | |
| } | |
| async fn init_workspace<C>( | |
| conn: &C, | |
| workspace: &str, | |
| ) -> JwstStorageResult<Workspace> | |
| where | |
| C: ConnectionTrait, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:229", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(229u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "start create doc in workspace: {0}", | |
| workspace | |
| ) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start create doc in workspace: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let all_data = Docs::find() | |
| .filter( | |
| Condition::all() | |
| .add(DocsColumn::WorkspaceId.eq(workspace)) | |
| .add(DocsColumn::IsWorkspace.eq(true)), | |
| ) | |
| .all(conn) | |
| .await?; | |
| let ws = if all_data.is_empty() { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:240", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(240u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("create workspace: {0}", workspace) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("create workspace: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let doc = Doc::with_options(DocOptions { | |
| guid: workspace.into(), | |
| ..Default::default() | |
| }); | |
| let ws = Workspace::from_doc(doc.clone(), workspace)?; | |
| let update = doc.encode_state_as_update_v1(&StateVector::default())?; | |
| Self::insert(conn, workspace, doc.guid(), &update).await?; | |
| ws | |
| } else { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:253", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(253u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("migrate workspace: {0}", workspace) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("migrate workspace: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let doc = Doc::with_options(DocOptions { | |
| guid: all_data.first().unwrap().guid.clone(), | |
| ..Default::default() | |
| }); | |
| let can_merge = all_data.len() > 1; | |
| let doc = utils::migrate_update(all_data, doc)?; | |
| if can_merge { | |
| let update = doc.encode_state_as_update_v1(&StateVector::default())?; | |
| Self::replace_with(conn, workspace, doc.guid(), update).await?; | |
| } | |
| Workspace::from_doc(doc, workspace)? | |
| }; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/database.rs:271", | |
| "jwst_storage::storage::docs::database", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/docs/database.rs"), | |
| Some(271u32), | |
| Some("jwst_storage::storage::docs::database"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "end create doc in workspace: {0}", | |
| workspace | |
| ) as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end create doc in workspace: {0}" , workspace) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(ws) | |
| } | |
| } | |
| impl DocStorage<JwstStorageError> for DocDBStorage { | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn detect_workspace<'life0, 'life1, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: &'life1 str, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<bool>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| 'life1: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<bool>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let __ret: JwstStorageResult<bool> = { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:280" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (280u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("check workspace exists: get lock") | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("check workspace exists: get lock") as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let _lock = __self.bucket.read().await; | |
| Ok(__self.workspaces.read().await.contains_key(workspace_id) | |
| || Self::workspace_count(&__self.pool, workspace_id) | |
| .await | |
| .map(|c| c > 0)?) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn get_or_create_workspace<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: String, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<Workspace>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<Workspace>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace_id = workspace_id; | |
| let __ret: JwstStorageResult<Workspace> = { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:288" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (288u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "get workspace enter: {0}", | |
| workspace_id | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("get workspace enter: {0}" , workspace_id) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| match __self.workspaces.write().await.entry(workspace_id.clone()) { | |
| Entry::Occupied(ws) => { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:291" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (291u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = | |
| match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => { | |
| ::tracing::log::Level::Trace | |
| } | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = | |
| log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect( | |
| "FieldSet corrupted (this is a bug)", | |
| ), | |
| Some(&format_args!( | |
| "get workspace cache: {0}", | |
| workspace_id | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & { # [allow (unused_imports)] use :: tracing :: field :: { debug , display , Value } ; let mut iter = CALLSITE . metadata () . fields () . iter () ; CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("get workspace cache: {0}" , workspace_id) as & dyn Value))]) }) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(ws.get().clone()) | |
| } | |
| Entry::Vacant(v) => { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:295" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: DEBUG , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (295u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = | |
| match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => { | |
| ::tracing::log::Level::Trace | |
| } | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = | |
| log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect( | |
| "FieldSet corrupted (this is a bug)", | |
| ), | |
| Some(&format_args!( | |
| "init workspace cache: get lock" | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & { # [allow (unused_imports)] use :: tracing :: field :: { debug , display , Value } ; let mut iter = CALLSITE . metadata () . fields () . iter () ; CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("init workspace cache: get lock") as & dyn Value))]) }) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let _lock = __self.bucket.write().await; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:297" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: INFO , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (297u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::INFO | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::INFO | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::INFO | |
| { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = | |
| log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect( | |
| "FieldSet corrupted (this is a bug)", | |
| ), | |
| Some(&format_args!( | |
| "init workspace cache: {0}", | |
| workspace_id | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & { # [allow (unused_imports)] use :: tracing :: field :: { debug , display , Value } ; let mut iter = CALLSITE . metadata () . fields () . iter () ; CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("init workspace cache: {0}" , workspace_id) as & dyn Value))]) }) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let ws = | |
| Self::init_workspace(&__self.pool, &workspace_id).await?; | |
| Ok(v.insert(ws).clone()) | |
| } | |
| } | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn flush_workspace<'life0, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: String, | |
| data: Vec<u8>, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<Workspace>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<Workspace>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace_id = workspace_id; | |
| let data = data; | |
| let __ret: JwstStorageResult<Workspace> = { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:306" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (306u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("create workspace: get lock") | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("create workspace: get lock") as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let ws = Self::init_workspace(&__self.pool, &workspace_id).await?; | |
| __self | |
| .full_migrate(&workspace_id, ws.doc_guid(), data) | |
| .await?; | |
| if true { | |
| match ( | |
| &Self::workspace_count(&__self.pool, &workspace_id).await?, | |
| &1u64, | |
| ) { | |
| (left_val, right_val) => { | |
| if !(*left_val == *right_val) { | |
| let kind = ::core::panicking::AssertKind::Eq; | |
| ::core::panicking::assert_failed( | |
| kind, | |
| &*left_val, | |
| &*right_val, | |
| ::core::option::Option::None, | |
| ); | |
| } | |
| } | |
| }; | |
| }; | |
| Ok(ws) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn delete_workspace<'life0, 'life1, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: &'life1 str, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<()>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| 'life1: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<()>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let __ret: JwstStorageResult<()> = { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:319" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: DEBUG , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (319u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("delete workspace: get lock") | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("delete workspace: get lock") as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let _lock = __self.bucket.write().await; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:322" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: DEBUG , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (322u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "delete workspace cache: {0}", | |
| workspace_id | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("delete workspace cache: {0}" , workspace_id) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| __self.workspaces.write().await.remove(workspace_id); | |
| DocDBStorage::delete_workspace(&__self.pool, workspace_id).await?; | |
| Ok(()) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn detect_doc<'life0, 'life1, 'async_trait>( | |
| &'life0 self, | |
| guid: &'life1 str, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<bool>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| 'life1: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<bool>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let __ret: JwstStorageResult<bool> = { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:330" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (330u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("check doc exists: get lock") | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("check doc exists: get lock") as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let _lock = __self.bucket.read().await; | |
| Ok(Self::count(&__self.pool, guid).await? > 0) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn get_doc<'life0, 'async_trait>( | |
| &'life0 self, | |
| guid: String, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<Option<Doc>>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<Option<Doc>>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let guid = guid; | |
| let __ret: JwstStorageResult<Option<Doc>> = { | |
| let records = Docs::find() | |
| .filter(DocsColumn::Guid.eq(guid)) | |
| .all(&__self.pool) | |
| .await?; | |
| if records.is_empty() { | |
| return Ok(None); | |
| } | |
| let doc = utils::migrate_update(records, Doc::default())?; | |
| Ok(Some(doc)) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn update_doc<'life0, 'life1, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: String, | |
| guid: String, | |
| data: &'life1 [u8], | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<()>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| 'life1: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<()>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace_id = workspace_id; | |
| let guid = guid; | |
| let __ret: JwstStorageResult<()> = { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:349" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: DEBUG , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (349u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("write_update: get lock") | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("write_update: get lock") as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let _lock = __self.bucket.write().await; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:352" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (352u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("write_update: {0:?}", data) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("write_update: {0:?}" , data) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| __self | |
| .update(&__self.pool, &workspace_id, &guid, data.into()) | |
| .await?; | |
| Ok(()) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn update_doc_with_guid<'life0, 'life1, 'async_trait>( | |
| &'life0 self, | |
| workspace_id: String, | |
| data: &'life1 [u8], | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<()>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| 'life1: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<()>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let workspace_id = workspace_id; | |
| let __ret: JwstStorageResult<()> = { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:359" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: DEBUG , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (359u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("write_update: get lock") | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("write_update: get lock") as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let _lock = __self.bucket.write().await; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:362" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (362u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("write_update: {0:?}", data) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("write_update: {0:?}" , data) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| let mut decoder = RawDecoder::new(data.to_vec()); | |
| let guid = decoder.read_var_string()?; | |
| __self | |
| .update(&__self.pool, &workspace_id, &guid, decoder.drain()) | |
| .await?; | |
| Ok(()) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| #[allow( | |
| clippy::async_yields_async, | |
| clippy::diverging_sub_expression, | |
| clippy::let_unit_value, | |
| clippy::no_effect_underscore_binding, | |
| clippy::shadow_same, | |
| clippy::type_complexity, | |
| clippy::type_repetition_in_bounds, | |
| clippy::used_underscore_binding | |
| )] | |
| fn delete_doc<'life0, 'life1, 'async_trait>( | |
| &'life0 self, | |
| guid: &'life1 str, | |
| ) -> ::core::pin::Pin< | |
| Box< | |
| dyn ::core::future::Future<Output = JwstStorageResult<()>> | |
| + ::core::marker::Send | |
| + 'async_trait, | |
| >, | |
| > | |
| where | |
| 'life0: 'async_trait, | |
| 'life1: 'async_trait, | |
| Self: 'async_trait, | |
| { | |
| Box::pin(async move { | |
| if let ::core::option::Option::Some(__ret) = | |
| ::core::option::Option::None::<JwstStorageResult<()>> | |
| { | |
| return __ret; | |
| } | |
| let __self = self; | |
| let __ret: JwstStorageResult<()> = { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:372" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (372u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("start drop doc: {0}", guid) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("start drop doc: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Docs::delete_many() | |
| .filter(DocsColumn::Guid.eq(guid)) | |
| .exec(&__self.pool) | |
| .await?; | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| :: tracing_core :: metadata :: Metadata :: new ("event libs/jwst-storage/src/storage/docs/database.rs:379" , "jwst_storage::storage::docs::database" , :: tracing :: Level :: TRACE , Some ("libs/jwst-storage/src/storage/docs/database.rs") , Some (379u32) , Some ("jwst_storage::storage::docs::database") , :: tracing_core :: field :: FieldSet :: new (& ["message"] , :: tracing_core :: callsite :: Identifier (& CALLSITE)) , :: tracing :: metadata :: Kind :: EVENT) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("end drop doc: {0}", guid) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("end drop doc: {0}" , guid) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| Ok(()) | |
| }; | |
| #[allow(unreachable_code)] | |
| __ret | |
| }) | |
| } | |
| } | |
| } | |
| mod utils { | |
| use jwst_codec::{Doc, StateVector}; | |
| use super::{entities::prelude::*, types::JwstStorageResult, *}; | |
| pub fn migrate_update( | |
| update_records: Vec<<Docs as EntityTrait>::Model>, | |
| mut doc: Doc, | |
| ) -> JwstResult<Doc> { | |
| doc.publisher.stop(); | |
| for record in update_records { | |
| let id = record.created_at; | |
| if let Err(e) = doc.apply_update_from_binary(record.blob) { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/docs/utils.rs:12", | |
| "jwst_storage::storage::docs::utils", | |
| ::tracing::Level::WARN, | |
| Some("libs/jwst-storage/src/storage/docs/utils.rs"), | |
| Some(12u32), | |
| Some("jwst_storage::storage::docs::utils"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::WARN | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::WARN | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "update {0} merge failed, skip it: {1:?}", | |
| id, e | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("update {0} merge failed, skip it: {1:?}" , id , e) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| } | |
| } | |
| doc.gc()?; | |
| doc.publisher.start(); | |
| Ok(doc) | |
| } | |
| pub fn merge_doc_records( | |
| update_records: Vec<<Docs as EntityTrait>::Model>, | |
| ) -> JwstStorageResult<Vec<u8>> { | |
| let doc = migrate_update(update_records, Doc::default())?; | |
| let state_vector = doc.encode_state_as_update_v1(&StateVector::default())?; | |
| Ok(state_vector) | |
| } | |
| } | |
| use std::ops::Deref; | |
| use database::DocDBStorage; | |
| use tokio::sync::{broadcast::Sender, RwLock}; | |
| use super::*; | |
| pub struct SharedDocDBStorage(pub(super) Arc<DocDBStorage>); | |
| #[automatically_derived] | |
| impl ::core::clone::Clone for SharedDocDBStorage { | |
| #[inline] | |
| fn clone(&self) -> SharedDocDBStorage { | |
| SharedDocDBStorage(::core::clone::Clone::clone(&self.0)) | |
| } | |
| } | |
| impl SharedDocDBStorage { | |
| pub async fn init_with_pool( | |
| pool: DatabaseConnection, | |
| bucket: Arc<Bucket>, | |
| ) -> JwstStorageResult<Self> { | |
| Ok(Self(Arc::new( | |
| DocDBStorage::init_with_pool(pool, bucket).await?, | |
| ))) | |
| } | |
| pub async fn init_pool(database: &str) -> JwstStorageResult<Self> { | |
| Ok(Self(Arc::new(DocDBStorage::init_pool(database).await?))) | |
| } | |
| pub fn remote(&self) -> &RwLock<HashMap<String, Sender<Vec<u8>>>> { | |
| self.0.remote() | |
| } | |
| } | |
| impl Deref for SharedDocDBStorage { | |
| type Target = DocDBStorage; | |
| fn deref(&self) -> &Self::Target { | |
| &self.0 | |
| } | |
| } | |
| } | |
| mod test {} | |
| use std::{collections::HashMap, time::Instant}; | |
| use blobs::{BlobDBStorage, BlobStorageType, JwstBlobStorage}; | |
| use docs::SharedDocDBStorage; | |
| use jwst_storage_migration::{Migrator, MigratorTrait}; | |
| use tokio::sync::Mutex; | |
| use super::*; | |
| pub struct JwstStorage { | |
| pool: DatabaseConnection, | |
| blobs: JwstBlobStorage, | |
| docs: SharedDocDBStorage, | |
| last_migrate: Mutex<HashMap<String, Instant>>, | |
| } | |
| impl JwstStorage { | |
| pub async fn new( | |
| database: &str, | |
| blob_storage_type: BlobStorageType, | |
| ) -> JwstStorageResult<Self> { | |
| let is_sqlite = is_sqlite(database); | |
| let pool = create_connection(database, is_sqlite).await?; | |
| let bucket = get_bucket(is_sqlite); | |
| if is_sqlite { | |
| pool.execute_unprepared("PRAGMA journal_mode=WAL;") | |
| .await | |
| .unwrap(); | |
| } | |
| let blobs = match blob_storage_type { | |
| BlobStorageType::DB => { | |
| #[cfg(not(feature = "image"))] | |
| { | |
| let db = | |
| BlobDBStorage::init_with_pool(pool.clone(), bucket.clone()).await?; | |
| JwstBlobStorage::RawStorage(Arc::new(db)) | |
| } | |
| } | |
| }; | |
| let docs = SharedDocDBStorage::init_with_pool(pool.clone(), bucket.clone()).await?; | |
| Ok(Self { | |
| pool, | |
| blobs, | |
| docs, | |
| last_migrate: Mutex::new(HashMap::new()), | |
| }) | |
| } | |
| pub async fn new_with_migration( | |
| database: &str, | |
| blob_storage_type: BlobStorageType, | |
| ) -> JwstStorageResult<Self> { | |
| let storage = Self::new(database, blob_storage_type).await?; | |
| storage.db_migrate().await?; | |
| Ok(storage) | |
| } | |
| async fn db_migrate(&self) -> JwstStorageResult<()> { | |
| Migrator::up(&self.pool, None).await?; | |
| Ok(()) | |
| } | |
| pub async fn new_with_sqlite( | |
| file: &str, | |
| blob_storage_type: BlobStorageType, | |
| ) -> JwstStorageResult<Self> { | |
| use std::fs::create_dir; | |
| let data = PathBuf::from("./data"); | |
| if !data.exists() { | |
| create_dir(&data).map_err(JwstStorageError::CreateDataFolder)?; | |
| } | |
| Self::new_with_migration( | |
| &{ | |
| let res = ::alloc::fmt::format(format_args!( | |
| "sqlite:{0}?mode=rwc", | |
| data.join(PathBuf::from(file).name_str()) | |
| .with_extension("db") | |
| .display() | |
| )); | |
| res | |
| }, | |
| blob_storage_type, | |
| ) | |
| .await | |
| } | |
| pub fn database(&self) -> String { | |
| { | |
| let res = ::alloc::fmt::format(format_args!("{0:?}", self.pool)); | |
| res | |
| } | |
| } | |
| pub fn blobs(&self) -> &JwstBlobStorage { | |
| &self.blobs | |
| } | |
| pub fn docs(&self) -> &SharedDocDBStorage { | |
| &self.docs | |
| } | |
| pub async fn with_pool<R, F, Fut>(&self, func: F) -> JwstStorageResult<R> | |
| where | |
| F: Fn(DatabaseConnection) -> Fut, | |
| Fut: Future<Output = JwstStorageResult<R>>, | |
| { | |
| func(self.pool.clone()).await | |
| } | |
| pub async fn create_workspace<S>(&self, workspace_id: S) -> JwstStorageResult<Workspace> | |
| where | |
| S: AsRef<str>, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/mod.rs:117", | |
| "jwst_storage::storage", | |
| ::tracing::Level::INFO, | |
| Some("libs/jwst-storage/src/storage/mod.rs"), | |
| Some(117u32), | |
| Some("jwst_storage::storage"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::INFO <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::INFO <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some( | |
| &format_args!("create_workspace: {0}", workspace_id.as_ref()) | |
| as &dyn Value, | |
| ), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect( | |
| "FieldSet corrupted (this is a bug)", | |
| ), | |
| Some(&format_args!( | |
| "create_workspace: {0}", | |
| workspace_id.as_ref() | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| self.docs | |
| .get_or_create_workspace(workspace_id.as_ref().into()) | |
| .await | |
| .map_err(|_err| { | |
| JwstStorageError::Crud({ | |
| let res = ::alloc::fmt::format(format_args!( | |
| "Failed to create workspace {0}", | |
| workspace_id.as_ref() | |
| )); | |
| res | |
| }) | |
| }) | |
| } | |
| pub async fn get_workspace<S>(&self, workspace_id: S) -> JwstStorageResult<Workspace> | |
| where | |
| S: AsRef<str>, | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/mod.rs:129", | |
| "jwst_storage::storage", | |
| ::tracing::Level::TRACE, | |
| Some("libs/jwst-storage/src/storage/mod.rs"), | |
| Some(129u32), | |
| Some("jwst_storage::storage"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::TRACE <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::TRACE <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!("get_workspace: {0}", workspace_id.as_ref()) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::TRACE { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect( | |
| "FieldSet corrupted (this is a bug)", | |
| ), | |
| Some(&format_args!( | |
| "get_workspace: {0}", | |
| workspace_id.as_ref() | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| if self | |
| .docs | |
| .detect_workspace(workspace_id.as_ref()) | |
| .await | |
| .map_err(|_err| { | |
| JwstStorageError::Crud({ | |
| let res = ::alloc::fmt::format(format_args!( | |
| "failed to check workspace {0}", | |
| workspace_id.as_ref() | |
| )); | |
| res | |
| }) | |
| })? | |
| { | |
| Ok(self | |
| .docs | |
| .get_or_create_workspace(workspace_id.as_ref().into()) | |
| .await | |
| .map_err(|_err| { | |
| JwstStorageError::Crud({ | |
| let res = ::alloc::fmt::format(format_args!( | |
| "failed to get workspace {0}", | |
| workspace_id.as_ref() | |
| )); | |
| res | |
| }) | |
| })?) | |
| } else { | |
| Err(JwstStorageError::WorkspaceNotFound( | |
| workspace_id.as_ref().into(), | |
| )) | |
| } | |
| } | |
| pub async fn full_migrate( | |
| &self, | |
| workspace_id: String, | |
| update: Option<Vec<u8>>, | |
| force: bool, | |
| ) -> bool { | |
| let mut map = self.last_migrate.lock().await; | |
| let ts = map.entry(workspace_id.clone()).or_insert(Instant::now()); | |
| if ts.elapsed().as_secs() > 5 || force { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/mod.rs:151", | |
| "jwst_storage::storage", | |
| ::tracing::Level::DEBUG, | |
| Some("libs/jwst-storage/src/storage/mod.rs"), | |
| Some(151u32), | |
| Some("jwst_storage::storage"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::DEBUG | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("full migrate: {0}" , workspace_id) as & dyn Value))]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::DEBUG { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect( | |
| "FieldSet corrupted (this is a bug)", | |
| ), | |
| Some(&format_args!( | |
| "full migrate: {0}", | |
| workspace_id | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| match self | |
| .docs | |
| .get_or_create_workspace(workspace_id.clone()) | |
| .await | |
| { | |
| Ok(workspace) => { | |
| let update = if let Some(update) = update { | |
| if let Err(e) = self.docs.delete_workspace(&workspace_id).await { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/mod.rs:156", | |
| "jwst_storage::storage", | |
| ::tracing::Level::ERROR, | |
| Some("libs/jwst-storage/src/storage/mod.rs"), | |
| Some(156u32), | |
| Some("jwst_storage::storage"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::ERROR | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::ERROR | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "full_migrate write error: {0}", | |
| e.to_string() | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & { # [allow (unused_imports)] use :: tracing :: field :: { debug , display , Value } ; let mut iter = CALLSITE . metadata () . fields () . iter () ; CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("full_migrate write error: {0}" , e . to_string ()) as & dyn Value))]) }) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| return false; | |
| }; | |
| Some(update) | |
| } else { | |
| workspace.sync_migration().ok() | |
| }; | |
| let Some(update) = update else { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/mod.rs:165", | |
| "jwst_storage::storage", | |
| ::tracing::Level::ERROR, | |
| Some("libs/jwst-storage/src/storage/mod.rs"), | |
| Some(165u32), | |
| Some("jwst_storage::storage"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::ERROR | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::ERROR | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "full migrate failed: wait transact timeout" | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("full migrate failed: wait transact timeout") as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| return false; | |
| }; | |
| if let Err(e) = self | |
| .docs | |
| .flush_workspace(workspace_id.clone(), update) | |
| .await | |
| { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/mod.rs:169", | |
| "jwst_storage::storage", | |
| ::tracing::Level::ERROR, | |
| Some("libs/jwst-storage/src/storage/mod.rs"), | |
| Some(169u32), | |
| Some("jwst_storage::storage"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::ERROR | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::ERROR | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| :: tracing :: __macro_support :: __tracing_log (meta , logger , log_meta , & value_set) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter | |
| .next() | |
| .expect("FieldSet corrupted (this is a bug)"), | |
| Some( | |
| &format_args!("db write error: {0}", e.to_string()) | |
| as &dyn Value, | |
| ), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::ERROR { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = CALLSITE | |
| .metadata() | |
| .fields() | |
| .iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("db write error: {0}" , e . to_string ()) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| return false; | |
| } | |
| *ts = Instant::now(); | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/mod.rs:175", | |
| "jwst_storage::storage", | |
| ::tracing::Level::INFO, | |
| Some("libs/jwst-storage/src/storage/mod.rs"), | |
| Some(175u32), | |
| Some("jwst_storage::storage"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::INFO | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::INFO | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some( | |
| &format_args!("full migrate final: {0}", workspace_id) | |
| as &dyn Value, | |
| ), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::INFO { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("full migrate final: {0}" , workspace_id) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| true | |
| } | |
| Err(e) => { | |
| { | |
| use ::tracing::__macro_support::Callsite as _; | |
| static CALLSITE: ::tracing::callsite::DefaultCallsite = { | |
| static META: ::tracing::Metadata<'static> = { | |
| ::tracing_core::metadata::Metadata::new( | |
| "event libs/jwst-storage/src/storage/mod.rs:179", | |
| "jwst_storage::storage", | |
| ::tracing::Level::WARN, | |
| Some("libs/jwst-storage/src/storage/mod.rs"), | |
| Some(179u32), | |
| Some("jwst_storage::storage"), | |
| ::tracing_core::field::FieldSet::new( | |
| &["message"], | |
| ::tracing_core::callsite::Identifier(&CALLSITE), | |
| ), | |
| ::tracing::metadata::Kind::EVENT, | |
| ) | |
| }; | |
| ::tracing::callsite::DefaultCallsite::new(&META) | |
| }; | |
| let enabled = ::tracing::Level::WARN | |
| <= ::tracing::level_filters::STATIC_MAX_LEVEL | |
| && ::tracing::Level::WARN | |
| <= ::tracing::level_filters::LevelFilter::current() | |
| && { | |
| let interest = CALLSITE.interest(); | |
| !interest.is_never() | |
| && ::tracing::__macro_support::__is_enabled( | |
| CALLSITE.metadata(), | |
| interest, | |
| ) | |
| }; | |
| if enabled { | |
| (|value_set: ::tracing::field::ValueSet| { | |
| let meta = CALLSITE.metadata(); | |
| ::tracing::Event::dispatch(meta, &value_set); | |
| if (match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, logger, log_meta, &value_set, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| })({ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{debug, display, Value}; | |
| let mut iter = CALLSITE.metadata().fields().iter(); | |
| CALLSITE.metadata().fields().value_set(&[( | |
| &iter.next().expect("FieldSet corrupted (this is a bug)"), | |
| Some(&format_args!( | |
| "workspace {0} not exists in cache: {1:?}", | |
| workspace_id, e | |
| ) | |
| as &dyn Value), | |
| )]) | |
| }); | |
| } else { | |
| if (match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => ::tracing::log::Level::Error, | |
| ::tracing::Level::WARN => ::tracing::log::Level::Warn, | |
| ::tracing::Level::INFO => ::tracing::log::Level::Info, | |
| ::tracing::Level::DEBUG => ::tracing::log::Level::Debug, | |
| _ => ::tracing::log::Level::Trace, | |
| }) <= ::tracing::log::STATIC_MAX_LEVEL | |
| { | |
| if !::tracing::dispatcher::has_been_set() { | |
| { | |
| use ::tracing::log; | |
| let level = match ::tracing::Level::WARN { | |
| ::tracing::Level::ERROR => { | |
| ::tracing::log::Level::Error | |
| } | |
| ::tracing::Level::WARN => { | |
| ::tracing::log::Level::Warn | |
| } | |
| ::tracing::Level::INFO => { | |
| ::tracing::log::Level::Info | |
| } | |
| ::tracing::Level::DEBUG => { | |
| ::tracing::log::Level::Debug | |
| } | |
| _ => ::tracing::log::Level::Trace, | |
| }; | |
| if level <= log::max_level() { | |
| let meta = CALLSITE.metadata(); | |
| let log_meta = log::Metadata::builder() | |
| .level(level) | |
| .target(meta.target()) | |
| .build(); | |
| let logger = log::logger(); | |
| if logger.enabled(&log_meta) { | |
| ::tracing::__macro_support::__tracing_log( | |
| meta, | |
| logger, | |
| log_meta, | |
| &{ | |
| #[allow(unused_imports)] | |
| use ::tracing::field::{ | |
| debug, display, Value, | |
| }; | |
| let mut iter = | |
| CALLSITE.metadata().fields().iter(); | |
| CALLSITE . metadata () . fields () . value_set (& [(& iter . next () . expect ("FieldSet corrupted (this is a bug)") , Some (& format_args ! ("workspace {0} not exists in cache: {1:?}" , workspace_id , e) as & dyn Value))]) | |
| }, | |
| ) | |
| } | |
| } | |
| } | |
| } else { | |
| {} | |
| } | |
| } else { | |
| {} | |
| }; | |
| } | |
| }; | |
| false | |
| } | |
| } | |
| } else { | |
| true | |
| } | |
| } | |
| } | |
| } | |
| mod types { | |
| use jwst_codec::JwstCodecError; | |
| use thiserror::Error; | |
| pub enum JwstStorageError { | |
| #[error("failed to init sync thread")] | |
| SyncThread(std::io::Error), | |
| #[error("failed to create data directory")] | |
| CreateDataFolder(std::io::Error), | |
| #[error("db manipulate error: {0}")] | |
| Crud(String), | |
| #[error("db error: {0:?}")] | |
| Db(#[from] sea_orm::DbErr), | |
| #[error("doc codec error")] | |
| DocJwstCodec(#[from] JwstCodecError), | |
| #[error("merge thread panic")] | |
| DocMerge(tokio::task::JoinError), | |
| #[error("workspace {0} not found")] | |
| WorkspaceNotFound(String), | |
| #[error("jwst error")] | |
| Jwst(#[from] jwst_core::JwstError), | |
| #[error("failed to process blob")] | |
| JwstBlob(#[from] crate::storage::blobs::JwstBlobError), | |
| } | |
| #[automatically_derived] | |
| impl ::core::fmt::Debug for JwstStorageError { | |
| fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { | |
| match self { | |
| JwstStorageError::SyncThread(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish(f, "SyncThread", &__self_0) | |
| } | |
| JwstStorageError::CreateDataFolder(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish( | |
| f, | |
| "CreateDataFolder", | |
| &__self_0, | |
| ) | |
| } | |
| JwstStorageError::Crud(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Crud", &__self_0) | |
| } | |
| JwstStorageError::Db(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Db", &__self_0) | |
| } | |
| JwstStorageError::DocJwstCodec(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish(f, "DocJwstCodec", &__self_0) | |
| } | |
| JwstStorageError::DocMerge(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish(f, "DocMerge", &__self_0) | |
| } | |
| JwstStorageError::WorkspaceNotFound(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish( | |
| f, | |
| "WorkspaceNotFound", | |
| &__self_0, | |
| ) | |
| } | |
| JwstStorageError::Jwst(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish(f, "Jwst", &__self_0) | |
| } | |
| JwstStorageError::JwstBlob(__self_0) => { | |
| ::core::fmt::Formatter::debug_tuple_field1_finish(f, "JwstBlob", &__self_0) | |
| } | |
| } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::error::Error for JwstStorageError { | |
| fn source(&self) -> std::option::Option<&(dyn std::error::Error + 'static)> { | |
| use thiserror::__private::AsDynError; | |
| #[allow(deprecated)] | |
| match self { | |
| JwstStorageError::SyncThread { .. } => std::option::Option::None, | |
| JwstStorageError::CreateDataFolder { .. } => std::option::Option::None, | |
| JwstStorageError::Crud { .. } => std::option::Option::None, | |
| JwstStorageError::Db { 0: source, .. } => { | |
| std::option::Option::Some(source.as_dyn_error()) | |
| } | |
| JwstStorageError::DocJwstCodec { 0: source, .. } => { | |
| std::option::Option::Some(source.as_dyn_error()) | |
| } | |
| JwstStorageError::DocMerge { .. } => std::option::Option::None, | |
| JwstStorageError::WorkspaceNotFound { .. } => std::option::Option::None, | |
| JwstStorageError::Jwst { 0: source, .. } => { | |
| std::option::Option::Some(source.as_dyn_error()) | |
| } | |
| JwstStorageError::JwstBlob { 0: source, .. } => { | |
| std::option::Option::Some(source.as_dyn_error()) | |
| } | |
| } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::fmt::Display for JwstStorageError { | |
| fn fmt(&self, __formatter: &mut std::fmt::Formatter) -> std::fmt::Result { | |
| #[allow(unused_imports)] | |
| use thiserror::__private::{DisplayAsDisplay, PathAsDisplay}; | |
| #[allow(unused_variables, deprecated, clippy::used_underscore_binding)] | |
| match self { | |
| JwstStorageError::SyncThread(_0) => { | |
| __formatter.write_fmt(format_args!("failed to init sync thread")) | |
| } | |
| JwstStorageError::CreateDataFolder(_0) => { | |
| __formatter.write_fmt(format_args!("failed to create data directory")) | |
| } | |
| JwstStorageError::Crud(_0) => { | |
| __formatter.write_fmt(format_args!("db manipulate error: {0}", _0.as_display())) | |
| } | |
| JwstStorageError::Db(_0) => { | |
| __formatter.write_fmt(format_args!("db error: {0:?}", _0)) | |
| } | |
| JwstStorageError::DocJwstCodec(_0) => { | |
| __formatter.write_fmt(format_args!("doc codec error")) | |
| } | |
| JwstStorageError::DocMerge(_0) => { | |
| __formatter.write_fmt(format_args!("merge thread panic")) | |
| } | |
| JwstStorageError::WorkspaceNotFound(_0) => { | |
| __formatter.write_fmt(format_args!("workspace {0} not found", _0.as_display())) | |
| } | |
| JwstStorageError::Jwst(_0) => __formatter.write_fmt(format_args!("jwst error")), | |
| JwstStorageError::JwstBlob(_0) => { | |
| __formatter.write_fmt(format_args!("failed to process blob")) | |
| } | |
| } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::convert::From<sea_orm::DbErr> for JwstStorageError { | |
| #[allow(deprecated)] | |
| fn from(source: sea_orm::DbErr) -> Self { | |
| JwstStorageError::Db { 0: source } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::convert::From<JwstCodecError> for JwstStorageError { | |
| #[allow(deprecated)] | |
| fn from(source: JwstCodecError) -> Self { | |
| JwstStorageError::DocJwstCodec { 0: source } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::convert::From<jwst_core::JwstError> for JwstStorageError { | |
| #[allow(deprecated)] | |
| fn from(source: jwst_core::JwstError) -> Self { | |
| JwstStorageError::Jwst { 0: source } | |
| } | |
| } | |
| #[allow(unused_qualifications)] | |
| impl std::convert::From<crate::storage::blobs::JwstBlobError> for JwstStorageError { | |
| #[allow(deprecated)] | |
| fn from(source: crate::storage::blobs::JwstBlobError) -> Self { | |
| JwstStorageError::JwstBlob { 0: source } | |
| } | |
| } | |
| pub type JwstStorageResult<T> = Result<T, JwstStorageError>; | |
| } | |
| use std::{path::PathBuf, sync::Arc, time::Duration}; | |
| use async_trait::async_trait; | |
| use chrono::Utc; | |
| use futures::{Future, Stream}; | |
| use jwst_core::{DocStorage, JwstResult, Workspace}; | |
| use jwst_logger::{debug, error, info, trace, warn}; | |
| use path_ext::PathExt; | |
| use rate_limiter::{get_bucket, is_sqlite, Bucket}; | |
| use sea_orm::{prelude::*, ConnectOptions, Database, DbErr, QuerySelect, Set}; | |
| pub use storage::{blobs::BlobStorageType, JwstStorage}; | |
| pub use types::{JwstStorageError, JwstStorageResult}; | |
| #[inline] | |
| async fn create_connection( | |
| database: &str, | |
| single_thread: bool, | |
| ) -> JwstStorageResult<DatabaseConnection> { | |
| let connection = Database::connect( | |
| ConnectOptions::from(database) | |
| .max_connections(if single_thread { 1 } else { 50 }) | |
| .min_connections(if single_thread { 1 } else { 10 }) | |
| .acquire_timeout(Duration::from_secs(5)) | |
| .connect_timeout(Duration::from_secs(5)) | |
| .idle_timeout(Duration::from_secs(5)) | |
| .max_lifetime(Duration::from_secs(30)) | |
| .to_owned(), | |
| ) | |
| .await?; | |
| Ok(connection) | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment