Skip to content

Instantly share code, notes, and snippets.

@thorseraq
Created September 12, 2023 15:04
Show Gist options
  • Select an option

  • Save thorseraq/b6b3124f228147e0d10826a3f9139d5e to your computer and use it in GitHub Desktop.

Select an option

Save thorseraq/b6b3124f228147e0d10826a3f9139d5e to your computer and use it in GitHub Desktop.
SeaORM expand
#![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