From 7beee9ab8c8db40344844e6410fdc191a39b2232 Mon Sep 17 00:00:00 2001 From: Oscar Beaumont Date: Tue, 29 Mar 2022 22:02:54 +0800 Subject: [PATCH] Linux support + upgrade prisma-client-rust --- README.md | 2 +- apps/desktop/src-tauri/Cargo.lock | Bin 214414 -> 214475 bytes apps/desktop/src-tauri/icons/icon.png | Bin 0 -> 131169 bytes packages/core/Cargo.lock | Bin 165791 -> 166388 bytes packages/core/Cargo.toml | 2 +- packages/core/src/client/mod.rs | 24 +- packages/core/src/crypto/encryption.rs | 2 +- packages/core/src/db/migrate.rs | 25 +- packages/core/src/db/mod.rs | 1 - packages/core/src/file/checksum.rs | 2 +- packages/core/src/file/explorer/mod.rs | 14 +- packages/core/src/file/indexer.rs | 10 +- packages/core/src/file/mod.rs | 17 +- packages/core/src/file/thumb.rs | 3 +- packages/core/src/job/jobs.rs | 24 +- packages/core/src/job/mod.rs | 211 +- packages/core/src/job/worker.rs | 10 +- packages/core/src/lib.rs | 25 +- packages/core/src/library/loader.rs | 15 +- packages/core/src/p2p/listener.rs | 4 +- packages/core/src/prisma.rs | 4793 ++---------------------- packages/core/src/sys/locations.rs | 79 +- packages/core/src/sys/mod.rs | 4 +- packages/core/src/sys/volumes.rs | 12 +- packages/core/src/util/time.rs | 4 +- packages/ui/style/tailwind.config.js | 2 +- yarn.lock | 2 +- 27 files changed, 605 insertions(+), 4682 deletions(-) create mode 100644 apps/desktop/src-tauri/icons/icon.png diff --git a/README.md b/README.md index 324ac0d54..373095ce1 100644 --- a/README.md +++ b/README.md @@ -112,4 +112,4 @@ Install instructions: - `$ git clone https://github.com/jamiepine/spacedrive` - `$ cd spacedrive` - `$ yarn` -- `$ yarn desktop dev` +- `$ yarn dev` diff --git a/apps/desktop/src-tauri/Cargo.lock b/apps/desktop/src-tauri/Cargo.lock index aedf9a738a073e9a1727c958424d5426fefcaf41..2f66ed476dbf08bd0b035d98998052b6a9c5a8a6 100644 GIT binary patch delta 1317 zcmb8uyGsK>5C(8|P>7PmD?EcyLWq?QV)o+Y_M$-$!Nx*R@X_5Piminp1PNG1<@5}b zDw-mFAjLKk3rmYs7FL3YohTM!Vd0_wfYa}f*>C6D(@Ny75^2qP6Fi+6v$F;lLRi+e z*w%SgHymR|H(Zg;*&^q1&9zLP)BW;btX=X>7}4O$CMfN#^P^rOY$s}=5YhNMS5H(@ z^3?Waqw_&@SifL5WK(4ilmCBnfxO6K=p`YJ8^^FHW607`;!wZ56q2V+){`f~-_7}3 z=c@dAWSz;?z2bf$qiMEbnxr+u31^lH2K*74q|yO$j8EP zfL&x!f4&yOvoP4yo6ba_Ni=@ROUir{hRKCio>{-F4?s&HuTlo9OfxDQMI`|or=t+Y z>swH9Jq3r@7Y9Y&r=S_9Cm+Iv6sYp00OKP>Erb7j%!vr=Rkn<~74WIq|JpBu_D?y~ Tq1{hr;P)H2L?|2Y@VfQ`UI=UC delta 1307 zcmbW0J4<6>5Qg~%g{V0(;3Zx_qd^oSaxR{mq96!1mNr@}oU1k}L>r5MU?GwyA;&Nx zcq`HeQhZ(f0U~O(Y~>$N6pLlc{nTd59e=>XJMTO*w*~3AAk}6{S$R^P~Ro%PG>#ybi8D0p$gZs<^j{Tl!O{g=HSd^mt4-ld@xD@9nq*E9@q z3z?LlhDUpgF@9WSP198JQ)aYU?&5!*SR<>uIcL*bpWSe_cY<6-*PUR>&@5e6-B2?e zCsYDY)fF`~d{b9t*Rca%wxf@w2~E3rUS%n4#K9%c;Yd&=L0^Uk`C0;cX*VoL%)dYj zzio$F@*B>$a5lh5;3&@i5S~Ti7;X;32`(V(;3F9*_kE*v7f;N=TtA5vj=1>TqC%zc qqQaJNOA_PP3UElO{m+eaapMynIsE=NGtqtnpF|49{OJvzm;VA-g?`!q diff --git a/apps/desktop/src-tauri/icons/icon.png b/apps/desktop/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cff51fb2261496168e482d7a62cfbaf6bb72607d GIT binary patch literal 131169 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 AaR2}S literal 0 HcmV?d00001 diff --git a/packages/core/Cargo.lock b/packages/core/Cargo.lock index 359b66413435929f943f7df22df6f71b6d228df1..94d034d72df87b19d97534da9de560476435378b 100644 GIT binary patch delta 6895 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∋#k{>Ar^HS<<=cT268P)lfL zPC3RKl9{Rk$E_{885*mwX$^J5+Y9QmJ+i9*-XkP^fa>vU%((v`X*W0|BJ7a&(9{h`frkz{SA+kUpBu>Df%0}OV$mn z*o1{jw4z`-C{~4_pb!gAWR^SFk2X*l3d|s0o*kwsl+FqP(4nhxEFEl()i-{K!<_OY z5%udIftE6$3(iI6+Cg)AFOjlP1Vq`wih@v(ts$47$WtJm7&8f*PY_?=7+SJwpE!54 zP7_I8cr9514E*+ba(q4aDIg^D)OdGp%rsOV5USJQ3V;wCj{@OQMt}z##=9V_JV%g- z{EZ9NMRBO9;q|r+WJ!O)(`3tx;{tT-X#X3}kpCQNcYk8bIII+;Hoy=@AZL!d=xPH% zMbkwXcLZkz$YdFVT0@wH$_At=R`@EhbL zRTLRSmoQZD=23O?FUjmaeT|&Auw8h@)H;N80tSsDk958WKtJP9&KBTXVCijygFu`C z(aDf$q{ML72J$N^>_DYl*}P^+f6Y7OwUL=lT!kchamEjIYN!u2bk-5jJ5MY_b5dvw zjs~?LEoI=DKsf>kfh;)bV$re)8zT4_+61>q5vC?EI;xh@q5~(3koL&_oudtbuBiseIf+c;U+r8LXyIMO6|D(2fVd+f!xcge5-o2$sGk$RLmU;b;ZEYkW`hnf&!b&}KQL~T?Jk*i(#fzGA z*1;_z=*S4npy@@B357x?9WzJLgR77b?m!YmA{41DQYn*>mE&6zho=Ctb@vsR=^M5+ z4-HL!gV5zkP}5y)H9|<|B?ZP)if99>U#1M2&WIxrcVX5NzTR;T(G&D(_l3+LL+n3a zn%jS`e)ls-yO9D0g@gm<7`hS}H7o;+tblO@VF0$^mAjBnT8ESq1M6aD1z%2ddmpS; z*N&0H>nAs(8Rsl(R`k!@(WJ5V>8BUT3mM>kkZTtXh1yXF z-lWkz82|yAQ34^Q@`DVe4kYEhAH{%O^4aE?Zq(-2$2Q~RJL{Vh`~Uda=4a%80RJ)r AzyJUM delta 6693 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 diff --git a/packages/core/Cargo.toml b/packages/core/Cargo.toml index f4bd61e90..395e9d4c7 100644 --- a/packages/core/Cargo.toml +++ b/packages/core/Cargo.toml @@ -29,7 +29,7 @@ once_cell = "1.8.0" int-enum = "0.4.0" # Project dependencies ts-rs = "6.1" -prisma-client-rust = { git = "https://github.com/Brendonovich/prisma-client-rust.git", branch = "master" } +prisma-client-rust = { git = "https://github.com/Brendonovich/prisma-client-rust.git", rev = "022b799929c0e5b1a7dc1565ec8228ba52a32991" } walkdir = "^2.3.2" bytesize = "1.1.0" env_logger = "0.9.0" diff --git a/packages/core/src/client/mod.rs b/packages/core/src/client/mod.rs index 0e2fb14a1..9437fd7cb 100644 --- a/packages/core/src/client/mod.rs +++ b/packages/core/src/client/mod.rs @@ -1,6 +1,15 @@ -use crate::{db, prisma::Client, state, Core}; -use anyhow::Result; +use crate::{ + prisma::{self, Client}, + state, Core, +}; use std::env; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum ClientError { + #[error("Database error")] + DatabaseError(#[from] prisma::QueryError), +} pub enum Platform { Unknown = 0, @@ -11,7 +20,7 @@ pub enum Platform { Android, } -pub async fn create(core: &Core) -> Result<()> { +pub async fn create(core: &Core) -> Result<(), ClientError> { println!("Creating client..."); let mut config = state::client::get(); @@ -33,7 +42,7 @@ pub async fn create(core: &Core) -> Result<()> { .client() .find_unique(Client::uuid().equals(config.client_uuid.clone())) .exec() - .await + .await? { Some(client) => client, None => { @@ -41,10 +50,13 @@ pub async fn create(core: &Core) -> Result<()> { .create_one( Client::uuid().set(config.client_uuid.clone()), Client::name().set(hostname.clone()), - vec![Client::platform().set(platform as i64), Client::online().set(true)], + vec![ + Client::platform().set(platform as i32), + Client::online().set(true), + ], ) .exec() - .await + .await? }, }; diff --git a/packages/core/src/crypto/encryption.rs b/packages/core/src/crypto/encryption.rs index a62484b3c..78b744561 100644 --- a/packages/core/src/crypto/encryption.rs +++ b/packages/core/src/crypto/encryption.rs @@ -2,7 +2,7 @@ use int_enum::IntEnum; use serde::{Deserialize, Serialize}; use ts_rs::TS; -#[repr(i64)] +#[repr(i32)] #[derive(Debug, Clone, Copy, Serialize, Deserialize, TS, Eq, PartialEq, IntEnum)] #[ts(export)] pub enum EncryptionAlgorithm { diff --git a/packages/core/src/db/migrate.rs b/packages/core/src/db/migrate.rs index e155d0e04..f92202b99 100644 --- a/packages/core/src/db/migrate.rs +++ b/packages/core/src/db/migrate.rs @@ -6,14 +6,17 @@ use include_dir::{include_dir, Dir}; use std::ffi::OsStr; use std::io::BufReader; -const INIT_MIGRATION: &str = include_str!("../../prisma/migrations/migration_table/migration.sql"); +const INIT_MIGRATION: &str = + include_str!("../../prisma/migrations/migration_table/migration.sql"); static MIGRATIONS_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR/prisma/migrations"); pub async fn run_migrations(db_url: &str) -> Result<()> { let client = prisma::new_client_with_url(&format!("file:{}", &db_url)).await; match client - ._query_raw::("SELECT name FROM sqlite_master WHERE type='table' AND name='_migrations'") + ._query_raw::( + "SELECT name FROM sqlite_master WHERE type='table' AND name='_migrations'", + ) .await { Ok(data) => { @@ -60,7 +63,9 @@ pub async fn run_migrations(db_url: &str) -> Result<()> { for subdir in migration_subdirs { println!("{:?}", subdir.path()); - let migration_file = subdir.get_file(subdir.path().join("./migration.sql")).unwrap(); + let migration_file = subdir + .get_file(subdir.path().join("./migration.sql")) + .unwrap(); let migration_sql = migration_file.contents_utf8().unwrap(); let digest = sha256_digest(BufReader::new(migration_file.contents()))?; @@ -73,7 +78,7 @@ pub async fn run_migrations(db_url: &str) -> Result<()> { .migration() .find_unique(Migration::checksum().equals(checksum.clone())) .exec() - .await; + .await?; if existing_migration.is_none() { println!("Running migration: {}", name); @@ -89,7 +94,7 @@ pub async fn run_migrations(db_url: &str) -> Result<()> { vec![], ) .exec() - .await; + .await?; for (i, step) in steps.iter().enumerate() { match client._execute_raw(&format!("{};", step)).await { @@ -97,10 +102,14 @@ pub async fn run_migrations(db_url: &str) -> Result<()> { println!("Step {} ran successfully", i); client .migration() - .find_unique(Migration::checksum().equals(checksum.clone())) - .update(vec![Migration::steps_applied().set(i as i64 + 1)]) + .find_unique( + Migration::checksum().equals(checksum.clone()), + ) + .update(vec![ + Migration::steps_applied().set(i as i32 + 1) + ]) .exec() - .await; + .await?; }, Err(e) => { println!("Error running migration: {}", name); diff --git a/packages/core/src/db/mod.rs b/packages/core/src/db/mod.rs index 4702075e9..c1a88a3ae 100644 --- a/packages/core/src/db/mod.rs +++ b/packages/core/src/db/mod.rs @@ -1,6 +1,5 @@ use crate::state; use crate::{prisma, prisma::PrismaClient}; -use anyhow::Result; use thiserror::Error; pub mod migrate; diff --git a/packages/core/src/file/checksum.rs b/packages/core/src/file/checksum.rs index 1d48bb029..9c87d80d8 100644 --- a/packages/core/src/file/checksum.rs +++ b/packages/core/src/file/checksum.rs @@ -2,7 +2,7 @@ use anyhow::Result; use data_encoding::HEXLOWER; use ring::digest::{Context, Digest, SHA256}; use std::convert::TryInto; -use std::fs::{self, File}; +use std::fs::File; use std::io::{self, BufReader, Read}; use std::os::unix::prelude::FileExt; diff --git a/packages/core/src/file/explorer/mod.rs b/packages/core/src/file/explorer/mod.rs index 7a9313c13..e596d5a29 100644 --- a/packages/core/src/file/explorer/mod.rs +++ b/packages/core/src/file/explorer/mod.rs @@ -1,9 +1,11 @@ -use crate::{db, file::DirectoryWithContents, prisma::FilePath, Core, CoreContext}; -use anyhow::Result; +use crate::{file::DirectoryWithContents, prisma::FilePath, CoreContext}; -use super::{File, FileError}; +use super::FileError; -pub async fn open_dir(ctx: &CoreContext, path: &str) -> Result { +pub async fn open_dir( + ctx: &CoreContext, + path: &str, +) -> Result { let db = &ctx.database; println!("getting files... {:?}", &path); @@ -15,14 +17,14 @@ pub async fn open_dir(ctx: &CoreContext, path: &str) -> Result, + id: Option, } // grab the next id so we can increment in memory for batch inserting let first_file_id = match db @@ -79,9 +79,9 @@ pub async fn scan_path( // spawn a dedicated thread to scan the directory for performance let (paths, scan_start, on_progress) = tokio::task::spawn_blocking(move || { // store every valid path discovered - let mut paths: Vec<(PathBuf, i64, Option)> = Vec::new(); + let mut paths: Vec<(PathBuf, i32, Option)> = Vec::new(); // store a hashmap of directories to their file ids for fast lookup - let mut dirs: HashMap = HashMap::new(); + let mut dirs: HashMap = HashMap::new(); // begin timer for logging purposes let scan_start = Instant::now(); @@ -188,9 +188,9 @@ pub async fn scan_path( // reads a file at a path and creates an ActiveModel with metadata fn prepare_values( file_path: &PathBuf, - id: i64, + id: i32, location: &LocationResource, - parent_id: &Option, + parent_id: &Option, ) -> Result { let metadata = fs::metadata(&file_path)?; let location_path = location.path.as_ref().unwrap().as_str(); diff --git a/packages/core/src/file/mod.rs b/packages/core/src/file/mod.rs index 6b42f155f..57324f85e 100644 --- a/packages/core/src/file/mod.rs +++ b/packages/core/src/file/mod.rs @@ -5,8 +5,7 @@ use ts_rs::TS; use crate::{ crypto::encryption::EncryptionAlgorithm, - db, - prisma::{FileData, FilePathData}, + prisma::{self, FileData, FilePathData}, }; pub mod checksum; pub mod explorer; @@ -18,7 +17,7 @@ pub mod watcher; #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[ts(export)] pub struct File { - pub id: i64, + pub id: i32, pub partial_checksum: String, pub checksum: Option, pub size_in_bytes: String, @@ -38,18 +37,18 @@ pub struct File { #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[ts(export)] pub struct FilePath { - pub id: i64, + pub id: i32, pub is_dir: bool, - pub location_id: i64, + pub location_id: i32, pub materialized_path: String, - pub file_id: Option, - pub parent_id: Option, + pub file_id: Option, + pub parent_id: Option, #[ts(type = "string")] pub date_indexed: chrono::DateTime, pub permissions: Option, } -#[repr(i64)] +#[repr(i32)] #[derive(Debug, Clone, Copy, Serialize, Deserialize, TS, Eq, PartialEq, IntEnum)] #[ts(export)] pub enum FileType { @@ -111,5 +110,5 @@ pub enum FileError { #[error("File not found (path: {0:?})")] FileNotFound(String), #[error("Database error")] - DatabaseError(#[from] db::DatabaseError), + DatabaseError(#[from] prisma::QueryError), } diff --git a/packages/core/src/file/thumb.rs b/packages/core/src/file/thumb.rs index 23db6732f..45720bddb 100644 --- a/packages/core/src/file/thumb.rs +++ b/packages/core/src/file/thumb.rs @@ -9,7 +9,8 @@ pub async fn create_thumb(path: &str) -> Result<()> { let file = File::open(path).unwrap(); let reader = BufReader::new(file); - let mut thumbnails = create_thumbnails(reader, mime::IMAGE_PNG, [ThumbnailSize::Small]).unwrap(); + let mut thumbnails = + create_thumbnails(reader, mime::IMAGE_PNG, [ThumbnailSize::Small]).unwrap(); let thumbnail = thumbnails.pop().unwrap(); diff --git a/packages/core/src/job/jobs.rs b/packages/core/src/job/jobs.rs index 4b5eedc14..91d94eeff 100644 --- a/packages/core/src/job/jobs.rs +++ b/packages/core/src/job/jobs.rs @@ -71,7 +71,7 @@ impl Jobs { prisma::Job::status().equals(JobStatus::Queued.int_value()), ])]) .exec() - .await; + .await?; Ok(jobs.into_iter().map(|j| j.into()).collect()) } @@ -88,20 +88,20 @@ pub enum JobReportUpdate { #[ts(export)] pub struct JobReport { pub id: String, - // client_id: i64, + // client_id: i32, #[ts(type = "string")] pub date_created: chrono::DateTime, #[ts(type = "string")] pub date_modified: chrono::DateTime, pub status: JobStatus, - pub task_count: i64, - pub completed_task_count: i64, + pub task_count: i32, + pub completed_task_count: i32, pub message: String, - pub percentage_complete: f64, + // pub percentage_complete: f64, #[ts(type = "string")] - pub seconds_elapsed: i64, + pub seconds_elapsed: i32, } // convert database struct into a resource struct @@ -116,7 +116,6 @@ impl Into for JobData { date_created: self.date_created, date_modified: self.date_modified, message: String::new(), - percentage_complete: 0.0, seconds_elapsed: self.seconds_elapsed, } } @@ -132,12 +131,11 @@ impl JobReport { status: JobStatus::Queued, task_count: 0, completed_task_count: 0, - percentage_complete: 0.0, message: String::new(), seconds_elapsed: 0, } } - pub async fn create(&self, ctx: &CoreContext) -> Result<()> { + pub async fn create(&self, ctx: &CoreContext) -> Result<(), JobError> { // let config = client::get(); ctx.database .job() @@ -148,10 +146,10 @@ impl JobReport { vec![], ) .exec() - .await; + .await?; Ok(()) } - pub async fn update(&self, ctx: &CoreContext) -> Result<()> { + pub async fn update(&self, ctx: &CoreContext) -> Result<(), JobError> { // let config = client::get(); ctx.database .job() @@ -164,12 +162,12 @@ impl JobReport { prisma::Job::seconds_elapsed().set(self.seconds_elapsed), ]) .exec() - .await; + .await?; Ok(()) } } -#[repr(i64)] +#[repr(i32)] #[derive(Debug, Clone, Copy, Serialize, Deserialize, TS, Eq, PartialEq, IntEnum)] #[ts(export)] pub enum JobStatus { diff --git a/packages/core/src/job/mod.rs b/packages/core/src/job/mod.rs index ee0938755..5dc2773c5 100644 --- a/packages/core/src/job/mod.rs +++ b/packages/core/src/job/mod.rs @@ -1,7 +1,7 @@ use std::fmt::Debug; use thiserror::Error; -use crate::db; +use crate::prisma; pub mod jobs; pub mod worker; @@ -11,5 +11,212 @@ pub enum JobError { #[error("Failed to create job (job_id {job_id:?})")] CreateFailure { job_id: String }, #[error("Database error")] - DatabaseError(#[from] db::DatabaseError), + DatabaseError(#[from] prisma::QueryError), } + +// pub struct JobContext { +// pub core_ctx: CoreContext, +// pub job_data: JobReport, +// } + +// #[derive(Debug)] +// pub enum JobCommand { +// Create(Box), +// Update { id: i32, data: JobUpdateEvent }, +// Completed { id: i32 }, +// } + +// #[derive(Debug)] +// pub struct JobUpdateEvent { +// pub task_count: Option, +// pub completed_task_count: Option, +// pub message: Option, +// } + +// // a struct to handle the runtime and execution of jobs +// pub struct Jobs { +// pub job_sender_channel: Sender, +// pub running_job: Mutex>, +// } + +// impl Jobs { +// pub fn new() -> (Self, mpsc::Receiver) { +// let (job_sender, job_receiver) = mpsc::channel(100); +// ( +// Self { +// job_sender_channel: job_sender, +// running_job: Mutex::new(None), +// }, +// job_receiver, +// ) +// } + +// pub fn start(&self, ctx: CoreContext, mut job_receiver: mpsc::Receiver) { +// // open a thread to handle job execution +// tokio::spawn(async move { +// // local memory for job queue +// let mut queued_jobs: Vec<(Box, JobReport)> = vec![]; + +// loop { +// tokio::select! { +// // when job is received via message channel +// Some(request) = job_receiver.recv() => { +// match request { +// // create a new job +// JobCommand::Create(job) => { +// // create job report and save to database +// let mut report = JobReport::new(); +// println!("Creating job: {:?} Metadata: {:?}", &job, &report); +// report.create(&ctx).await; +// // queue the job +// queued_jobs.push((job, report)); + +// let current_running_job = self.running_job.lock().await; + +// if current_running_job.is_none() { +// // replace the running job mutex with this job +// let (current_job, current_report) = queued_jobs.pop().unwrap(); +// current_running_job.replace(current_report); +// // push job id into running jobs vector +// let id = report.id; +// let ctx = ctx.clone(); + +// // open a dedicated blocking thread to run job +// tokio::task::spawn_blocking(move || { +// // asynchronously call run method +// let handle = tokio::runtime::Handle::current(); +// let job_sender = ctx.job_sender.clone(); + +// handle.block_on(current_report.update(&ctx, None, Some(JobStatus::Running))).unwrap(); +// handle.block_on(job.run(JobContext { core_ctx: ctx.clone(), job_data: current_report.clone() })).unwrap(); + +// job_sender.send(JobCommand::Completed { id }).unwrap(); + +// }); +// } +// } +// // update a running job +// JobCommand::Update { id, data } => { +// let ctx = ctx.clone(); +// // find running job in memory by id +// let running_job = get_job(&id).unwrap_or_else(|| panic!("Job not found")); +// // update job data +// running_job.update(&ctx, Some(data), None).await.unwrap(); +// // emit event to invalidate client cache +// ctx.emit(CoreEvent::InvalidateQuery(ClientQuery::JobGetRunning)).await; +// }, +// JobCommand::Completed { id } => { +// let ctx = ctx.clone(); +// let running_job = get_job(&id).unwrap_or_else(|| panic!("Job not found")); +// running_job.update(&ctx, None, Some(JobStatus::Completed)).await.unwrap(); +// ctx.emit(CoreEvent::InvalidateQuery(ClientQuery::JobGetRunning)).await; +// ctx.emit(CoreEvent::InvalidateQuery(ClientQuery::JobGetHistory)).await; + +// } +// } +// } +// } +// } +// }); +// } + +// pub async fn handle_job_command(&mut self, job: JobCommand) { +// self.job_sender_channel.send(job).await.unwrap_or(()); +// } +// } + +// impl JobReport { +// pub fn new() -> Self { +// Self { +// id: 0, +// // client_id: 0, +// date_created: chrono::Utc::now(), +// date_modified: chrono::Utc::now(), +// status: JobStatus::Queued, +// task_count: 0, +// completed_task_count: 0, +// message: String::new(), +// } +// } +// pub async fn create(&mut self, ctx: &CoreContext) { +// // let config = client::get(); +// let job = ctx +// .database +// .job() +// .create_one( +// prisma::Job::action().set(1), +// // prisma::Job::clients().link(prisma::Client::id().equals(config.client_uuid)), +// vec![], +// ) +// .exec() +// .await; +// self.id = job.id; +// } +// pub async fn update( +// &mut self, +// ctx: &CoreContext, +// changes: Option, +// status: Option, +// ) -> Result<()> { +// match changes { +// Some(changes) => { +// if changes.task_count.is_some() { +// self.task_count = changes.task_count.unwrap(); +// } +// if changes.completed_task_count.is_some() { +// self.completed_task_count = changes.completed_task_count.unwrap(); +// } +// if changes.message.is_some() { +// self.message = changes.message.unwrap(); +// } +// }, +// None => {}, +// } +// if status.is_some() { +// self.status = status.unwrap(); + +// if self.status == JobStatus::Completed { +// ctx.database +// .job() +// .find_unique(prisma::Job::id().equals(self.id)) +// .update(vec![ +// prisma::Job::status().set(self.status.int_value()), +// prisma::Job::task_count().set(self.task_count), +// prisma::Job::completed_task_count().set(self.completed_task_count), +// prisma::Job::date_modified().set(chrono::Utc::now()), +// ]) +// .exec() +// .await; +// } +// } +// println!("JOB REPORT: {:?}", self); + +// Ok(()) +// } + +// pub async fn get_running(ctx: &CoreContext) -> Result, JobError> { +// let db = &ctx.database; +// let jobs = db +// .job() +// .find_many(vec![prisma::Job::status().equals(JobStatus::Running.int_value())]) +// .exec() +// .await; + +// Ok(jobs.into_iter().map(|j| j.into()).collect()) +// } + +// pub async fn get_history(ctx: &CoreContext) -> Result, JobError> { +// let db = &ctx.database; +// let jobs = db +// .job() +// .find_many(vec![or(vec![ +// prisma::Job::status().equals(JobStatus::Completed.int_value()), +// prisma::Job::status().equals(JobStatus::Canceled.int_value()), +// prisma::Job::status().equals(JobStatus::Queued.int_value()), +// ])]) +// .exec() +// .await; + +// Ok(jobs.into_iter().map(|j| j.into()).collect()) +// } +// } diff --git a/packages/core/src/job/worker.rs b/packages/core/src/job/worker.rs index 668c69e5a..17dc50218 100644 --- a/packages/core/src/job/worker.rs +++ b/packages/core/src/job/worker.rs @@ -142,23 +142,19 @@ impl Worker { for change in changes { match change { JobReportUpdate::TaskCount(task_count) => { - worker.job_report.task_count = task_count as i64; + worker.job_report.task_count = task_count as i32; }, JobReportUpdate::CompletedTaskCount(completed_task_count) => { worker.job_report.completed_task_count = - completed_task_count as i64; - worker.job_report.percentage_complete = - (worker.job_report.completed_task_count as f64 - / worker.job_report.task_count as f64) * 100.0; + completed_task_count as i32; }, JobReportUpdate::Message(message) => { worker.job_report.message = message; }, JobReportUpdate::SecondsElapsed(seconds) => { - worker.job_report.seconds_elapsed = seconds as i64; + worker.job_report.seconds_elapsed = seconds as i32; }, } - worker.job_report.date_modified = chrono::Utc::now(); } ctx.emit(CoreEvent::InvalidateQueryDebounced( ClientQuery::JobGetRunning, diff --git a/packages/core/src/lib.rs b/packages/core/src/lib.rs index e900e0ad6..9a6cf270d 100644 --- a/packages/core/src/lib.rs +++ b/packages/core/src/lib.rs @@ -1,4 +1,3 @@ -use anyhow::Result; use job::jobs::{Job, JobReport, Jobs}; use log::{error, info}; use prisma::PrismaClient; @@ -308,22 +307,22 @@ impl Core { #[ts(export)] pub enum ClientCommand { // Files - FileRead { id: i64 }, - // FileEncrypt { id: i64, algorithm: EncryptionAlgorithm }, - FileDelete { id: i64 }, + FileRead { id: i32 }, + // FileEncrypt { id: i32, algorithm: EncryptionAlgorithm }, + FileDelete { id: i32 }, // Library - LibDelete { id: i64 }, + LibDelete { id: i32 }, // Tags TagCreate { name: String, color: String }, TagUpdate { name: String, color: String }, - TagAssign { file_id: i64, tag_id: i64 }, - TagDelete { id: i64 }, + TagAssign { file_id: i32, tag_id: i32 }, + TagDelete { id: i32 }, // Locations LocCreate { path: String }, - LocUpdate { id: i64, name: Option }, - LocDelete { id: i64 }, + LocUpdate { id: i32, name: Option }, + LocDelete { id: i32 }, // System - SysVolumeUnmount { id: i64 }, + SysVolumeUnmount { id: i32 }, } // represents an event this library can emit @@ -336,8 +335,8 @@ pub enum ClientQuery { LibGetTags, JobGetRunning, JobGetHistory, - SysGetLocation { id: i64 }, - LibGetExplorerDir { path: String, limit: i64 }, + SysGetLocation { id: i32 }, + LibGetExplorerDir { path: String, limit: i32 }, } // represents an event this library can emit @@ -378,7 +377,7 @@ pub enum CoreError { #[error("Job error")] JobError(#[from] job::JobError), #[error("Database error")] - DatabaseError(#[from] db::DatabaseError), + DatabaseError(#[from] prisma::QueryError), } #[derive(Serialize, Deserialize, Debug, TS)] diff --git a/packages/core/src/library/loader.rs b/packages/core/src/library/loader.rs index d1b8ffc1a..6a551f87b 100644 --- a/packages/core/src/library/loader.rs +++ b/packages/core/src/library/loader.rs @@ -1,18 +1,25 @@ use anyhow::Result; +use thiserror::Error; use uuid::Uuid; use crate::state::client::LibraryState; -use crate::Core; use crate::{ - db::{self, migrate}, + db::migrate, prisma::{Library, LibraryData}, state, }; +use crate::{prisma, Core}; pub static LIBRARY_DB_NAME: &str = "library.db"; pub static DEFAULT_NAME: &str = "My Library"; -pub async fn get(core: &Core) -> Result { +#[derive(Error, Debug)] +pub enum LibraryError { + #[error("Database error")] + DatabaseError(#[from] prisma::QueryError), +} + +pub async fn get(core: &Core) -> Result { let config = state::client::get(); let db = &core.database; @@ -25,7 +32,7 @@ pub async fn get(core: &Core) -> Result { .library() .find_unique(Library::uuid().equals(library_state.library_uuid.clone())) .exec() - .await + .await? { Some(library) => Ok(library), None => { diff --git a/packages/core/src/p2p/listener.rs b/packages/core/src/p2p/listener.rs index e16e76c8b..3ed8132b4 100644 --- a/packages/core/src/p2p/listener.rs +++ b/packages/core/src/p2p/listener.rs @@ -38,7 +38,9 @@ pub async fn listen(port: Option) -> Result<(), Box> { loop { match swarm.select_next_some().await { - SwarmEvent::NewListenAddr { address, .. } => println!("Listening on {:?}", address), + SwarmEvent::NewListenAddr { address, .. } => { + println!("Listening on {:?}", address) + }, SwarmEvent::Behaviour(event) => println!("{:?}", event), _ => {}, } diff --git a/packages/core/src/prisma.rs b/packages/core/src/prisma.rs index d1d50cf30..3899ffa89 100644 --- a/packages/core/src/prisma.rs +++ b/packages/core/src/prisma.rs @@ -2,6 +2,7 @@ use prisma_client_rust::datamodel::parse_configuration; use prisma_client_rust::prisma_models::InternalDataModelBuilder; +pub use prisma_client_rust::query::Error as QueryError; use prisma_client_rust::query::{ transform_equals, Field, Input, Output, Query, QueryContext, Result as QueryResult, }; @@ -219,16 +220,16 @@ impl MigrationIdField { MigrationCursor::Id(cursor) } pub fn increment(&self, value: i32) -> MigrationSetParam { - MigrationSetParam::Id(value) + MigrationSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> MigrationSetParam { - MigrationSetParam::Id(value) + MigrationSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> MigrationSetParam { - MigrationSetParam::Id(value) + MigrationSetParam::SetId(value) } pub fn divide(&self, value: i32) -> MigrationSetParam { - MigrationSetParam::Id(value) + MigrationSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> MigrationWhereParam { MigrationWhereParam::IdInVec(value) @@ -251,18 +252,6 @@ impl MigrationIdField { pub fn not(&self, value: i32) -> MigrationWhereParam { MigrationWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> MigrationWhereParam { - MigrationWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> MigrationWhereParam { - MigrationWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> MigrationWhereParam { - MigrationWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> MigrationWhereParam { - MigrationWhereParam::IdGte(value) - } } pub struct MigrationSetId(i32); impl From for MigrationSetParam { @@ -314,12 +303,6 @@ impl MigrationNameField { pub fn not(&self, value: String) -> MigrationWhereParam { MigrationWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> MigrationWhereParam { - MigrationWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> MigrationWhereParam { - MigrationWhereParam::NameHasSuffix(value) - } } pub struct MigrationSetName(String); impl From for MigrationSetParam { @@ -371,12 +354,6 @@ impl MigrationChecksumField { pub fn not(&self, value: String) -> MigrationWhereParam { MigrationWhereParam::ChecksumNot(value) } - pub fn has_prefix(&self, value: String) -> MigrationWhereParam { - MigrationWhereParam::ChecksumHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> MigrationWhereParam { - MigrationWhereParam::ChecksumHasSuffix(value) - } } pub struct MigrationSetChecksum(String); impl From for MigrationSetParam { @@ -399,16 +376,16 @@ impl MigrationStepsAppliedField { MigrationCursor::StepsApplied(cursor) } pub fn increment(&self, value: i32) -> MigrationSetParam { - MigrationSetParam::StepsApplied(value) + MigrationSetParam::SetStepsApplied(value) } pub fn decrement(&self, value: i32) -> MigrationSetParam { - MigrationSetParam::StepsApplied(value) + MigrationSetParam::SetStepsApplied(value) } pub fn multiply(&self, value: i32) -> MigrationSetParam { - MigrationSetParam::StepsApplied(value) + MigrationSetParam::SetStepsApplied(value) } pub fn divide(&self, value: i32) -> MigrationSetParam { - MigrationSetParam::StepsApplied(value) + MigrationSetParam::SetStepsApplied(value) } pub fn in_vec(&self, value: Vec) -> MigrationWhereParam { MigrationWhereParam::StepsAppliedInVec(value) @@ -431,18 +408,6 @@ impl MigrationStepsAppliedField { pub fn not(&self, value: i32) -> MigrationWhereParam { MigrationWhereParam::StepsAppliedNot(value) } - pub fn lt(&self, value: i32) -> MigrationWhereParam { - MigrationWhereParam::StepsAppliedLt(value) - } - pub fn lte(&self, value: i32) -> MigrationWhereParam { - MigrationWhereParam::StepsAppliedLte(value) - } - pub fn gt(&self, value: i32) -> MigrationWhereParam { - MigrationWhereParam::StepsAppliedGt(value) - } - pub fn gte(&self, value: i32) -> MigrationWhereParam { - MigrationWhereParam::StepsAppliedGte(value) - } } pub struct MigrationSetStepsApplied(i32); impl From for MigrationSetParam { @@ -494,24 +459,6 @@ impl MigrationAppliedAtField { pub fn not(&self, value: chrono::DateTime) -> MigrationWhereParam { MigrationWhereParam::AppliedAtNot(value) } - pub fn before(&self, value: chrono::DateTime) -> MigrationWhereParam { - MigrationWhereParam::AppliedAtBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> MigrationWhereParam { - MigrationWhereParam::AppliedAtAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> MigrationWhereParam { - MigrationWhereParam::AppliedAtBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> MigrationWhereParam { - MigrationWhereParam::AppliedAtAfterEquals(value) - } } pub struct MigrationSetAppliedAt(chrono::DateTime); impl From for MigrationSetParam { @@ -651,10 +598,6 @@ pub enum MigrationWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -666,8 +609,6 @@ pub enum MigrationWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), ChecksumEquals(String), ChecksumInVec(Vec), ChecksumNotInVec(Vec), @@ -679,8 +620,6 @@ pub enum MigrationWhereParam { ChecksumStartsWith(String), ChecksumEndsWith(String), ChecksumNot(String), - ChecksumHasPrefix(String), - ChecksumHasSuffix(String), StepsAppliedEquals(i32), StepsAppliedInVec(Vec), StepsAppliedNotInVec(Vec), @@ -689,10 +628,6 @@ pub enum MigrationWhereParam { StepsAppliedGt(i32), StepsAppliedGte(i32), StepsAppliedNot(i32), - StepsAppliedLt(i32), - StepsAppliedLte(i32), - StepsAppliedGt(i32), - StepsAppliedGte(i32), AppliedAtEquals(chrono::DateTime), AppliedAtInVec(Vec>), AppliedAtNotInVec(Vec>), @@ -701,10 +636,6 @@ pub enum MigrationWhereParam { AppliedAtGt(chrono::DateTime), AppliedAtGte(chrono::DateTime), AppliedAtNot(chrono::DateTime), - AppliedAtBefore(chrono::DateTime), - AppliedAtAfter(chrono::DateTime), - AppliedAtBeforeEquals(chrono::DateTime), - AppliedAtAfterEquals(chrono::DateTime), } impl MigrationWhereParam { pub fn to_field(&self) -> Field { @@ -820,42 +751,6 @@ impl MigrationWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -973,24 +868,6 @@ impl MigrationWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::ChecksumEquals(value) => Field { name: "checksum".into(), fields: Some(vec![Field { @@ -1108,24 +985,6 @@ impl MigrationWhereParam { }]), ..Default::default() }, - Self::ChecksumHasPrefix(value) => Field { - name: "checksum".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ChecksumHasSuffix(value) => Field { - name: "checksum".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::StepsAppliedEquals(value) => Field { name: "steps_applied".into(), fields: Some(vec![Field { @@ -1216,42 +1075,6 @@ impl MigrationWhereParam { }]), ..Default::default() }, - Self::StepsAppliedLt(value) => Field { - name: "steps_applied".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::StepsAppliedLte(value) => Field { - name: "steps_applied".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::StepsAppliedGt(value) => Field { - name: "steps_applied".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::StepsAppliedGte(value) => Field { - name: "steps_applied".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::AppliedAtEquals(value) => Field { name: "applied_at".into(), fields: Some(vec![Field { @@ -1342,42 +1165,6 @@ impl MigrationWhereParam { }]), ..Default::default() }, - Self::AppliedAtBefore(value) => Field { - name: "applied_at".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::AppliedAtAfter(value) => Field { - name: "applied_at".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::AppliedAtBeforeEquals(value) => Field { - name: "applied_at".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::AppliedAtAfterEquals(value) => Field { - name: "applied_at".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, } } } @@ -1510,7 +1297,7 @@ pub struct MigrationFindFirst<'a> { with_params: Vec, } impl<'a> MigrationFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -1569,7 +1356,7 @@ pub struct MigrationFindUnique<'a> { with_params: Vec, } impl<'a> MigrationFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -1699,7 +1486,7 @@ impl<'a> MigrationUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -1960,16 +1747,16 @@ impl LibraryIdField { LibraryCursor::Id(cursor) } pub fn increment(&self, value: i32) -> LibrarySetParam { - LibrarySetParam::Id(value) + LibrarySetParam::SetId(value) } pub fn decrement(&self, value: i32) -> LibrarySetParam { - LibrarySetParam::Id(value) + LibrarySetParam::SetId(value) } pub fn multiply(&self, value: i32) -> LibrarySetParam { - LibrarySetParam::Id(value) + LibrarySetParam::SetId(value) } pub fn divide(&self, value: i32) -> LibrarySetParam { - LibrarySetParam::Id(value) + LibrarySetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> LibraryWhereParam { LibraryWhereParam::IdInVec(value) @@ -1992,18 +1779,6 @@ impl LibraryIdField { pub fn not(&self, value: i32) -> LibraryWhereParam { LibraryWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> LibraryWhereParam { - LibraryWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> LibraryWhereParam { - LibraryWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> LibraryWhereParam { - LibraryWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> LibraryWhereParam { - LibraryWhereParam::IdGte(value) - } } pub struct LibrarySetId(i32); impl From for LibrarySetParam { @@ -2055,12 +1830,6 @@ impl LibraryUuidField { pub fn not(&self, value: String) -> LibraryWhereParam { LibraryWhereParam::UuidNot(value) } - pub fn has_prefix(&self, value: String) -> LibraryWhereParam { - LibraryWhereParam::UuidHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LibraryWhereParam { - LibraryWhereParam::UuidHasSuffix(value) - } } pub struct LibrarySetUuid(String); impl From for LibrarySetParam { @@ -2112,12 +1881,6 @@ impl LibraryNameField { pub fn not(&self, value: String) -> LibraryWhereParam { LibraryWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> LibraryWhereParam { - LibraryWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LibraryWhereParam { - LibraryWhereParam::NameHasSuffix(value) - } } pub struct LibrarySetName(String); impl From for LibrarySetParam { @@ -2169,12 +1932,6 @@ impl LibraryRemoteIdField { pub fn not(&self, value: String) -> LibraryWhereParam { LibraryWhereParam::RemoteIdNot(value) } - pub fn has_prefix(&self, value: String) -> LibraryWhereParam { - LibraryWhereParam::RemoteIdHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LibraryWhereParam { - LibraryWhereParam::RemoteIdHasSuffix(value) - } } pub struct LibrarySetRemoteId(String); impl From for LibrarySetParam { @@ -2218,16 +1975,16 @@ impl LibraryEncryptionField { LibraryCursor::Encryption(cursor) } pub fn increment(&self, value: i32) -> LibrarySetParam { - LibrarySetParam::Encryption(value) + LibrarySetParam::SetEncryption(value) } pub fn decrement(&self, value: i32) -> LibrarySetParam { - LibrarySetParam::Encryption(value) + LibrarySetParam::SetEncryption(value) } pub fn multiply(&self, value: i32) -> LibrarySetParam { - LibrarySetParam::Encryption(value) + LibrarySetParam::SetEncryption(value) } pub fn divide(&self, value: i32) -> LibrarySetParam { - LibrarySetParam::Encryption(value) + LibrarySetParam::SetEncryption(value) } pub fn in_vec(&self, value: Vec) -> LibraryWhereParam { LibraryWhereParam::EncryptionInVec(value) @@ -2250,18 +2007,6 @@ impl LibraryEncryptionField { pub fn not(&self, value: i32) -> LibraryWhereParam { LibraryWhereParam::EncryptionNot(value) } - pub fn lt(&self, value: i32) -> LibraryWhereParam { - LibraryWhereParam::EncryptionLt(value) - } - pub fn lte(&self, value: i32) -> LibraryWhereParam { - LibraryWhereParam::EncryptionLte(value) - } - pub fn gt(&self, value: i32) -> LibraryWhereParam { - LibraryWhereParam::EncryptionGt(value) - } - pub fn gte(&self, value: i32) -> LibraryWhereParam { - LibraryWhereParam::EncryptionGte(value) - } } pub struct LibrarySetEncryption(i32); impl From for LibrarySetParam { @@ -2310,24 +2055,6 @@ impl LibraryDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> LibraryWhereParam { LibraryWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> LibraryWhereParam { - LibraryWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> LibraryWhereParam { - LibraryWhereParam::DateCreatedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> LibraryWhereParam { - LibraryWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> LibraryWhereParam { - LibraryWhereParam::DateCreatedAfterEquals(value) - } } pub struct LibrarySetDateCreated(chrono::DateTime); impl From for LibrarySetParam { @@ -2379,12 +2106,6 @@ impl LibraryTimezoneField { pub fn not(&self, value: String) -> LibraryWhereParam { LibraryWhereParam::TimezoneNot(value) } - pub fn has_prefix(&self, value: String) -> LibraryWhereParam { - LibraryWhereParam::TimezoneHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LibraryWhereParam { - LibraryWhereParam::TimezoneHasSuffix(value) - } } pub struct LibrarySetTimezone(String); impl From for LibrarySetParam { @@ -2659,10 +2380,6 @@ pub enum LibraryWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), UuidEquals(String), UuidInVec(Vec), UuidNotInVec(Vec), @@ -2674,8 +2391,6 @@ pub enum LibraryWhereParam { UuidStartsWith(String), UuidEndsWith(String), UuidNot(String), - UuidHasPrefix(String), - UuidHasSuffix(String), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -2687,8 +2402,6 @@ pub enum LibraryWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), RemoteIdEquals(String), RemoteIdInVec(Vec), RemoteIdNotInVec(Vec), @@ -2700,8 +2413,6 @@ pub enum LibraryWhereParam { RemoteIdStartsWith(String), RemoteIdEndsWith(String), RemoteIdNot(String), - RemoteIdHasPrefix(String), - RemoteIdHasSuffix(String), IsPrimaryEquals(bool), EncryptionEquals(i32), EncryptionInVec(Vec), @@ -2711,10 +2422,6 @@ pub enum LibraryWhereParam { EncryptionGt(i32), EncryptionGte(i32), EncryptionNot(i32), - EncryptionLt(i32), - EncryptionLte(i32), - EncryptionGt(i32), - EncryptionGte(i32), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -2723,10 +2430,6 @@ pub enum LibraryWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), TimezoneEquals(String), TimezoneInVec(Vec), TimezoneNotInVec(Vec), @@ -2738,8 +2441,6 @@ pub enum LibraryWhereParam { TimezoneStartsWith(String), TimezoneEndsWith(String), TimezoneNot(String), - TimezoneHasPrefix(String), - TimezoneHasSuffix(String), SpacesSome(Vec), SpacesEvery(Vec), } @@ -2857,42 +2558,6 @@ impl LibraryWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::UuidEquals(value) => Field { name: "uuid".into(), fields: Some(vec![Field { @@ -3010,24 +2675,6 @@ impl LibraryWhereParam { }]), ..Default::default() }, - Self::UuidHasPrefix(value) => Field { - name: "uuid".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::UuidHasSuffix(value) => Field { - name: "uuid".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -3145,24 +2792,6 @@ impl LibraryWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::RemoteIdEquals(value) => Field { name: "remote_id".into(), fields: Some(vec![Field { @@ -3280,24 +2909,6 @@ impl LibraryWhereParam { }]), ..Default::default() }, - Self::RemoteIdHasPrefix(value) => Field { - name: "remote_id".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::RemoteIdHasSuffix(value) => Field { - name: "remote_id".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::IsPrimaryEquals(value) => Field { name: "is_primary".into(), fields: Some(vec![Field { @@ -3397,42 +3008,6 @@ impl LibraryWhereParam { }]), ..Default::default() }, - Self::EncryptionLt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionLte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -3523,42 +3098,6 @@ impl LibraryWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TimezoneEquals(value) => Field { name: "timezone".into(), fields: Some(vec![Field { @@ -3676,24 +3215,6 @@ impl LibraryWhereParam { }]), ..Default::default() }, - Self::TimezoneHasPrefix(value) => Field { - name: "timezone".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TimezoneHasSuffix(value) => Field { - name: "timezone".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::SpacesSome(value) => Field { name: "spaces".into(), fields: Some(vec![Field { @@ -3842,7 +3363,7 @@ pub struct LibraryFindFirst<'a> { with_params: Vec, } impl<'a> LibraryFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -3901,7 +3422,7 @@ pub struct LibraryFindUnique<'a> { with_params: Vec, } impl<'a> LibraryFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -4031,7 +3552,7 @@ impl<'a> LibraryUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -4277,16 +3798,16 @@ impl LibraryStatisticsIdField { LibraryStatisticsCursor::Id(cursor) } pub fn increment(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::Id(value) + LibraryStatisticsSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::Id(value) + LibraryStatisticsSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::Id(value) + LibraryStatisticsSetParam::SetId(value) } pub fn divide(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::Id(value) + LibraryStatisticsSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::IdInVec(value) @@ -4309,18 +3830,6 @@ impl LibraryStatisticsIdField { pub fn not(&self, value: i32) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::IdGte(value) - } } pub struct LibraryStatisticsSetId(i32); impl From for LibraryStatisticsSetParam { @@ -4393,30 +3902,6 @@ impl LibraryStatisticsDateCapturedField { ) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::DateCapturedNot(value) } - pub fn before( - &self, - value: chrono::DateTime, - ) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::DateCapturedBefore(value) - } - pub fn after( - &self, - value: chrono::DateTime, - ) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::DateCapturedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::DateCapturedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::DateCapturedAfterEquals(value) - } } pub struct LibraryStatisticsSetDateCaptured(chrono::DateTime); impl From for LibraryStatisticsSetParam { @@ -4439,16 +3924,16 @@ impl LibraryStatisticsLibraryIdField { LibraryStatisticsCursor::LibraryId(cursor) } pub fn increment(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::LibraryId(value) + LibraryStatisticsSetParam::SetLibraryId(value) } pub fn decrement(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::LibraryId(value) + LibraryStatisticsSetParam::SetLibraryId(value) } pub fn multiply(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::LibraryId(value) + LibraryStatisticsSetParam::SetLibraryId(value) } pub fn divide(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::LibraryId(value) + LibraryStatisticsSetParam::SetLibraryId(value) } pub fn in_vec(&self, value: Vec) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::LibraryIdInVec(value) @@ -4471,18 +3956,6 @@ impl LibraryStatisticsLibraryIdField { pub fn not(&self, value: i32) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::LibraryIdNot(value) } - pub fn lt(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::LibraryIdLt(value) - } - pub fn lte(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::LibraryIdLte(value) - } - pub fn gt(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::LibraryIdGt(value) - } - pub fn gte(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::LibraryIdGte(value) - } } pub struct LibraryStatisticsSetLibraryId(i32); impl From for LibraryStatisticsSetParam { @@ -4505,16 +3978,16 @@ impl LibraryStatisticsTotalFileCountField { LibraryStatisticsCursor::TotalFileCount(cursor) } pub fn increment(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::TotalFileCount(value) + LibraryStatisticsSetParam::SetTotalFileCount(value) } pub fn decrement(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::TotalFileCount(value) + LibraryStatisticsSetParam::SetTotalFileCount(value) } pub fn multiply(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::TotalFileCount(value) + LibraryStatisticsSetParam::SetTotalFileCount(value) } pub fn divide(&self, value: i32) -> LibraryStatisticsSetParam { - LibraryStatisticsSetParam::TotalFileCount(value) + LibraryStatisticsSetParam::SetTotalFileCount(value) } pub fn in_vec(&self, value: Vec) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::TotalFileCountInVec(value) @@ -4537,18 +4010,6 @@ impl LibraryStatisticsTotalFileCountField { pub fn not(&self, value: i32) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::TotalFileCountNot(value) } - pub fn lt(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalFileCountLt(value) - } - pub fn lte(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalFileCountLte(value) - } - pub fn gt(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalFileCountGt(value) - } - pub fn gte(&self, value: i32) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalFileCountGte(value) - } } pub struct LibraryStatisticsSetTotalFileCount(i32); impl From for LibraryStatisticsSetParam { @@ -4600,12 +4061,6 @@ impl LibraryStatisticsTotalBytesUsedField { pub fn not(&self, value: String) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::TotalBytesUsedNot(value) } - pub fn has_prefix(&self, value: String) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalBytesUsedHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalBytesUsedHasSuffix(value) - } } pub struct LibraryStatisticsSetTotalBytesUsed(String); impl From for LibraryStatisticsSetParam { @@ -4660,12 +4115,6 @@ impl LibraryStatisticsTotalByteCapacityField { pub fn not(&self, value: String) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::TotalByteCapacityNot(value) } - pub fn has_prefix(&self, value: String) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalByteCapacityHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalByteCapacityHasSuffix(value) - } } pub struct LibraryStatisticsSetTotalByteCapacity(String); impl From for LibraryStatisticsSetParam { @@ -4717,12 +4166,6 @@ impl LibraryStatisticsTotalUniqueBytesField { pub fn not(&self, value: String) -> LibraryStatisticsWhereParam { LibraryStatisticsWhereParam::TotalUniqueBytesNot(value) } - pub fn has_prefix(&self, value: String) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalUniqueBytesHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LibraryStatisticsWhereParam { - LibraryStatisticsWhereParam::TotalUniqueBytesHasSuffix(value) - } } pub struct LibraryStatisticsSetTotalUniqueBytes(String); impl From for LibraryStatisticsSetParam { @@ -4898,10 +4341,6 @@ pub enum LibraryStatisticsWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), DateCapturedEquals(chrono::DateTime), DateCapturedInVec(Vec>), DateCapturedNotInVec(Vec>), @@ -4910,10 +4349,6 @@ pub enum LibraryStatisticsWhereParam { DateCapturedGt(chrono::DateTime), DateCapturedGte(chrono::DateTime), DateCapturedNot(chrono::DateTime), - DateCapturedBefore(chrono::DateTime), - DateCapturedAfter(chrono::DateTime), - DateCapturedBeforeEquals(chrono::DateTime), - DateCapturedAfterEquals(chrono::DateTime), LibraryIdEquals(i32), LibraryIdInVec(Vec), LibraryIdNotInVec(Vec), @@ -4922,10 +4357,6 @@ pub enum LibraryStatisticsWhereParam { LibraryIdGt(i32), LibraryIdGte(i32), LibraryIdNot(i32), - LibraryIdLt(i32), - LibraryIdLte(i32), - LibraryIdGt(i32), - LibraryIdGte(i32), TotalFileCountEquals(i32), TotalFileCountInVec(Vec), TotalFileCountNotInVec(Vec), @@ -4934,10 +4365,6 @@ pub enum LibraryStatisticsWhereParam { TotalFileCountGt(i32), TotalFileCountGte(i32), TotalFileCountNot(i32), - TotalFileCountLt(i32), - TotalFileCountLte(i32), - TotalFileCountGt(i32), - TotalFileCountGte(i32), TotalBytesUsedEquals(String), TotalBytesUsedInVec(Vec), TotalBytesUsedNotInVec(Vec), @@ -4949,8 +4376,6 @@ pub enum LibraryStatisticsWhereParam { TotalBytesUsedStartsWith(String), TotalBytesUsedEndsWith(String), TotalBytesUsedNot(String), - TotalBytesUsedHasPrefix(String), - TotalBytesUsedHasSuffix(String), TotalByteCapacityEquals(String), TotalByteCapacityInVec(Vec), TotalByteCapacityNotInVec(Vec), @@ -4962,8 +4387,6 @@ pub enum LibraryStatisticsWhereParam { TotalByteCapacityStartsWith(String), TotalByteCapacityEndsWith(String), TotalByteCapacityNot(String), - TotalByteCapacityHasPrefix(String), - TotalByteCapacityHasSuffix(String), TotalUniqueBytesEquals(String), TotalUniqueBytesInVec(Vec), TotalUniqueBytesNotInVec(Vec), @@ -4975,8 +4398,6 @@ pub enum LibraryStatisticsWhereParam { TotalUniqueBytesStartsWith(String), TotalUniqueBytesEndsWith(String), TotalUniqueBytesNot(String), - TotalUniqueBytesHasPrefix(String), - TotalUniqueBytesHasSuffix(String), } impl LibraryStatisticsWhereParam { pub fn to_field(&self) -> Field { @@ -5092,42 +4513,6 @@ impl LibraryStatisticsWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCapturedEquals(value) => Field { name: "date_captured".into(), fields: Some(vec![Field { @@ -5218,42 +4603,6 @@ impl LibraryStatisticsWhereParam { }]), ..Default::default() }, - Self::DateCapturedBefore(value) => Field { - name: "date_captured".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCapturedAfter(value) => Field { - name: "date_captured".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCapturedBeforeEquals(value) => Field { - name: "date_captured".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCapturedAfterEquals(value) => Field { - name: "date_captured".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::LibraryIdEquals(value) => Field { name: "library_id".into(), fields: Some(vec![Field { @@ -5344,42 +4693,6 @@ impl LibraryStatisticsWhereParam { }]), ..Default::default() }, - Self::LibraryIdLt(value) => Field { - name: "library_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LibraryIdLte(value) => Field { - name: "library_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LibraryIdGt(value) => Field { - name: "library_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LibraryIdGte(value) => Field { - name: "library_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TotalFileCountEquals(value) => Field { name: "total_file_count".into(), fields: Some(vec![Field { @@ -5470,42 +4783,6 @@ impl LibraryStatisticsWhereParam { }]), ..Default::default() }, - Self::TotalFileCountLt(value) => Field { - name: "total_file_count".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalFileCountLte(value) => Field { - name: "total_file_count".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalFileCountGt(value) => Field { - name: "total_file_count".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalFileCountGte(value) => Field { - name: "total_file_count".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TotalBytesUsedEquals(value) => Field { name: "total_bytes_used".into(), fields: Some(vec![Field { @@ -5623,24 +4900,6 @@ impl LibraryStatisticsWhereParam { }]), ..Default::default() }, - Self::TotalBytesUsedHasPrefix(value) => Field { - name: "total_bytes_used".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalBytesUsedHasSuffix(value) => Field { - name: "total_bytes_used".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TotalByteCapacityEquals(value) => Field { name: "total_byte_capacity".into(), fields: Some(vec![Field { @@ -5758,24 +5017,6 @@ impl LibraryStatisticsWhereParam { }]), ..Default::default() }, - Self::TotalByteCapacityHasPrefix(value) => Field { - name: "total_byte_capacity".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalByteCapacityHasSuffix(value) => Field { - name: "total_byte_capacity".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TotalUniqueBytesEquals(value) => Field { name: "total_unique_bytes".into(), fields: Some(vec![Field { @@ -5893,24 +5134,6 @@ impl LibraryStatisticsWhereParam { }]), ..Default::default() }, - Self::TotalUniqueBytesHasPrefix(value) => Field { - name: "total_unique_bytes".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalUniqueBytesHasSuffix(value) => Field { - name: "total_unique_bytes".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, } } } @@ -6046,7 +5269,7 @@ pub struct LibraryStatisticsFindFirst<'a> { with_params: Vec, } impl<'a> LibraryStatisticsFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -6105,7 +5328,7 @@ pub struct LibraryStatisticsFindUnique<'a> { with_params: Vec, } impl<'a> LibraryStatisticsFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -6236,7 +5459,7 @@ impl<'a> LibraryStatisticsUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -6504,16 +5727,16 @@ impl ClientIdField { ClientCursor::Id(cursor) } pub fn increment(&self, value: i32) -> ClientSetParam { - ClientSetParam::Id(value) + ClientSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> ClientSetParam { - ClientSetParam::Id(value) + ClientSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> ClientSetParam { - ClientSetParam::Id(value) + ClientSetParam::SetId(value) } pub fn divide(&self, value: i32) -> ClientSetParam { - ClientSetParam::Id(value) + ClientSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> ClientWhereParam { ClientWhereParam::IdInVec(value) @@ -6536,18 +5759,6 @@ impl ClientIdField { pub fn not(&self, value: i32) -> ClientWhereParam { ClientWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> ClientWhereParam { - ClientWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> ClientWhereParam { - ClientWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> ClientWhereParam { - ClientWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> ClientWhereParam { - ClientWhereParam::IdGte(value) - } } pub struct ClientSetId(i32); impl From for ClientSetParam { @@ -6599,12 +5810,6 @@ impl ClientUuidField { pub fn not(&self, value: String) -> ClientWhereParam { ClientWhereParam::UuidNot(value) } - pub fn has_prefix(&self, value: String) -> ClientWhereParam { - ClientWhereParam::UuidHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> ClientWhereParam { - ClientWhereParam::UuidHasSuffix(value) - } } pub struct ClientSetUuid(String); impl From for ClientSetParam { @@ -6656,12 +5861,6 @@ impl ClientNameField { pub fn not(&self, value: String) -> ClientWhereParam { ClientWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> ClientWhereParam { - ClientWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> ClientWhereParam { - ClientWhereParam::NameHasSuffix(value) - } } pub struct ClientSetName(String); impl From for ClientSetParam { @@ -6684,16 +5883,16 @@ impl ClientPlatformField { ClientCursor::Platform(cursor) } pub fn increment(&self, value: i32) -> ClientSetParam { - ClientSetParam::Platform(value) + ClientSetParam::SetPlatform(value) } pub fn decrement(&self, value: i32) -> ClientSetParam { - ClientSetParam::Platform(value) + ClientSetParam::SetPlatform(value) } pub fn multiply(&self, value: i32) -> ClientSetParam { - ClientSetParam::Platform(value) + ClientSetParam::SetPlatform(value) } pub fn divide(&self, value: i32) -> ClientSetParam { - ClientSetParam::Platform(value) + ClientSetParam::SetPlatform(value) } pub fn in_vec(&self, value: Vec) -> ClientWhereParam { ClientWhereParam::PlatformInVec(value) @@ -6716,18 +5915,6 @@ impl ClientPlatformField { pub fn not(&self, value: i32) -> ClientWhereParam { ClientWhereParam::PlatformNot(value) } - pub fn lt(&self, value: i32) -> ClientWhereParam { - ClientWhereParam::PlatformLt(value) - } - pub fn lte(&self, value: i32) -> ClientWhereParam { - ClientWhereParam::PlatformLte(value) - } - pub fn gt(&self, value: i32) -> ClientWhereParam { - ClientWhereParam::PlatformGt(value) - } - pub fn gte(&self, value: i32) -> ClientWhereParam { - ClientWhereParam::PlatformGte(value) - } } pub struct ClientSetPlatform(i32); impl From for ClientSetParam { @@ -6779,12 +5966,6 @@ impl ClientVersionField { pub fn not(&self, value: String) -> ClientWhereParam { ClientWhereParam::VersionNot(value) } - pub fn has_prefix(&self, value: String) -> ClientWhereParam { - ClientWhereParam::VersionHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> ClientWhereParam { - ClientWhereParam::VersionHasSuffix(value) - } } pub struct ClientSetVersion(String); impl From for ClientSetParam { @@ -6854,21 +6035,6 @@ impl ClientLastSeenField { pub fn not(&self, value: chrono::DateTime) -> ClientWhereParam { ClientWhereParam::LastSeenNot(value) } - pub fn before(&self, value: chrono::DateTime) -> ClientWhereParam { - ClientWhereParam::LastSeenBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> ClientWhereParam { - ClientWhereParam::LastSeenAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> ClientWhereParam { - ClientWhereParam::LastSeenBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> ClientWhereParam { - ClientWhereParam::LastSeenAfterEquals(value) - } } pub struct ClientSetLastSeen(chrono::DateTime); impl From for ClientSetParam { @@ -6920,12 +6086,6 @@ impl ClientTimezoneField { pub fn not(&self, value: String) -> ClientWhereParam { ClientWhereParam::TimezoneNot(value) } - pub fn has_prefix(&self, value: String) -> ClientWhereParam { - ClientWhereParam::TimezoneHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> ClientWhereParam { - ClientWhereParam::TimezoneHasSuffix(value) - } } pub struct ClientSetTimezone(String); impl From for ClientSetParam { @@ -6974,21 +6134,6 @@ impl ClientDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> ClientWhereParam { ClientWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> ClientWhereParam { - ClientWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> ClientWhereParam { - ClientWhereParam::DateCreatedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> ClientWhereParam { - ClientWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> ClientWhereParam { - ClientWhereParam::DateCreatedAfterEquals(value) - } } pub struct ClientSetDateCreated(chrono::DateTime); impl From for ClientSetParam { @@ -7200,10 +6345,6 @@ pub enum ClientWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), UuidEquals(String), UuidInVec(Vec), UuidNotInVec(Vec), @@ -7215,8 +6356,6 @@ pub enum ClientWhereParam { UuidStartsWith(String), UuidEndsWith(String), UuidNot(String), - UuidHasPrefix(String), - UuidHasSuffix(String), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -7228,8 +6367,6 @@ pub enum ClientWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), PlatformEquals(i32), PlatformInVec(Vec), PlatformNotInVec(Vec), @@ -7238,10 +6375,6 @@ pub enum ClientWhereParam { PlatformGt(i32), PlatformGte(i32), PlatformNot(i32), - PlatformLt(i32), - PlatformLte(i32), - PlatformGt(i32), - PlatformGte(i32), VersionEquals(String), VersionInVec(Vec), VersionNotInVec(Vec), @@ -7253,8 +6386,6 @@ pub enum ClientWhereParam { VersionStartsWith(String), VersionEndsWith(String), VersionNot(String), - VersionHasPrefix(String), - VersionHasSuffix(String), OnlineEquals(bool), LastSeenEquals(chrono::DateTime), LastSeenInVec(Vec>), @@ -7264,10 +6395,6 @@ pub enum ClientWhereParam { LastSeenGt(chrono::DateTime), LastSeenGte(chrono::DateTime), LastSeenNot(chrono::DateTime), - LastSeenBefore(chrono::DateTime), - LastSeenAfter(chrono::DateTime), - LastSeenBeforeEquals(chrono::DateTime), - LastSeenAfterEquals(chrono::DateTime), TimezoneEquals(String), TimezoneInVec(Vec), TimezoneNotInVec(Vec), @@ -7279,8 +6406,6 @@ pub enum ClientWhereParam { TimezoneStartsWith(String), TimezoneEndsWith(String), TimezoneNot(String), - TimezoneHasPrefix(String), - TimezoneHasSuffix(String), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -7289,10 +6414,6 @@ pub enum ClientWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), } impl ClientWhereParam { pub fn to_field(&self) -> Field { @@ -7408,42 +6529,6 @@ impl ClientWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::UuidEquals(value) => Field { name: "uuid".into(), fields: Some(vec![Field { @@ -7561,24 +6646,6 @@ impl ClientWhereParam { }]), ..Default::default() }, - Self::UuidHasPrefix(value) => Field { - name: "uuid".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::UuidHasSuffix(value) => Field { - name: "uuid".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -7696,24 +6763,6 @@ impl ClientWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::PlatformEquals(value) => Field { name: "platform".into(), fields: Some(vec![Field { @@ -7804,42 +6853,6 @@ impl ClientWhereParam { }]), ..Default::default() }, - Self::PlatformLt(value) => Field { - name: "platform".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::PlatformLte(value) => Field { - name: "platform".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::PlatformGt(value) => Field { - name: "platform".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::PlatformGte(value) => Field { - name: "platform".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::VersionEquals(value) => Field { name: "version".into(), fields: Some(vec![Field { @@ -7957,24 +6970,6 @@ impl ClientWhereParam { }]), ..Default::default() }, - Self::VersionHasPrefix(value) => Field { - name: "version".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::VersionHasSuffix(value) => Field { - name: "version".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::OnlineEquals(value) => Field { name: "online".into(), fields: Some(vec![Field { @@ -8074,42 +7069,6 @@ impl ClientWhereParam { }]), ..Default::default() }, - Self::LastSeenBefore(value) => Field { - name: "last_seen".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LastSeenAfter(value) => Field { - name: "last_seen".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LastSeenBeforeEquals(value) => Field { - name: "last_seen".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LastSeenAfterEquals(value) => Field { - name: "last_seen".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TimezoneEquals(value) => Field { name: "timezone".into(), fields: Some(vec![Field { @@ -8227,24 +7186,6 @@ impl ClientWhereParam { }]), ..Default::default() }, - Self::TimezoneHasPrefix(value) => Field { - name: "timezone".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TimezoneHasSuffix(value) => Field { - name: "timezone".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -8335,42 +7276,6 @@ impl ClientWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, } } } @@ -8501,7 +7406,7 @@ pub struct ClientFindFirst<'a> { with_params: Vec, } impl<'a> ClientFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -8560,7 +7465,7 @@ pub struct ClientFindUnique<'a> { with_params: Vec, } impl<'a> ClientFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -8690,7 +7595,7 @@ impl<'a> ClientUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -8975,16 +7880,16 @@ impl LocationIdField { LocationCursor::Id(cursor) } pub fn increment(&self, value: i32) -> LocationSetParam { - LocationSetParam::Id(value) + LocationSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> LocationSetParam { - LocationSetParam::Id(value) + LocationSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> LocationSetParam { - LocationSetParam::Id(value) + LocationSetParam::SetId(value) } pub fn divide(&self, value: i32) -> LocationSetParam { - LocationSetParam::Id(value) + LocationSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> LocationWhereParam { LocationWhereParam::IdInVec(value) @@ -9007,18 +7912,6 @@ impl LocationIdField { pub fn not(&self, value: i32) -> LocationWhereParam { LocationWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::IdGte(value) - } } pub struct LocationSetId(i32); impl From for LocationSetParam { @@ -9070,12 +7963,6 @@ impl LocationNameField { pub fn not(&self, value: String) -> LocationWhereParam { LocationWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> LocationWhereParam { - LocationWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LocationWhereParam { - LocationWhereParam::NameHasSuffix(value) - } } pub struct LocationSetName(String); impl From for LocationSetParam { @@ -9127,12 +8014,6 @@ impl LocationLocalPathField { pub fn not(&self, value: String) -> LocationWhereParam { LocationWhereParam::LocalPathNot(value) } - pub fn has_prefix(&self, value: String) -> LocationWhereParam { - LocationWhereParam::LocalPathHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LocationWhereParam { - LocationWhereParam::LocalPathHasSuffix(value) - } } pub struct LocationSetLocalPath(String); impl From for LocationSetParam { @@ -9155,16 +8036,16 @@ impl LocationTotalCapacityField { LocationCursor::TotalCapacity(cursor) } pub fn increment(&self, value: i32) -> LocationSetParam { - LocationSetParam::TotalCapacity(value) + LocationSetParam::SetTotalCapacity(value) } pub fn decrement(&self, value: i32) -> LocationSetParam { - LocationSetParam::TotalCapacity(value) + LocationSetParam::SetTotalCapacity(value) } pub fn multiply(&self, value: i32) -> LocationSetParam { - LocationSetParam::TotalCapacity(value) + LocationSetParam::SetTotalCapacity(value) } pub fn divide(&self, value: i32) -> LocationSetParam { - LocationSetParam::TotalCapacity(value) + LocationSetParam::SetTotalCapacity(value) } pub fn in_vec(&self, value: Vec) -> LocationWhereParam { LocationWhereParam::TotalCapacityInVec(value) @@ -9187,18 +8068,6 @@ impl LocationTotalCapacityField { pub fn not(&self, value: i32) -> LocationWhereParam { LocationWhereParam::TotalCapacityNot(value) } - pub fn lt(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::TotalCapacityLt(value) - } - pub fn lte(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::TotalCapacityLte(value) - } - pub fn gt(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::TotalCapacityGt(value) - } - pub fn gte(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::TotalCapacityGte(value) - } } pub struct LocationSetTotalCapacity(i32); impl From for LocationSetParam { @@ -9221,16 +8090,16 @@ impl LocationAvailableCapacityField { LocationCursor::AvailableCapacity(cursor) } pub fn increment(&self, value: i32) -> LocationSetParam { - LocationSetParam::AvailableCapacity(value) + LocationSetParam::SetAvailableCapacity(value) } pub fn decrement(&self, value: i32) -> LocationSetParam { - LocationSetParam::AvailableCapacity(value) + LocationSetParam::SetAvailableCapacity(value) } pub fn multiply(&self, value: i32) -> LocationSetParam { - LocationSetParam::AvailableCapacity(value) + LocationSetParam::SetAvailableCapacity(value) } pub fn divide(&self, value: i32) -> LocationSetParam { - LocationSetParam::AvailableCapacity(value) + LocationSetParam::SetAvailableCapacity(value) } pub fn in_vec(&self, value: Vec) -> LocationWhereParam { LocationWhereParam::AvailableCapacityInVec(value) @@ -9253,18 +8122,6 @@ impl LocationAvailableCapacityField { pub fn not(&self, value: i32) -> LocationWhereParam { LocationWhereParam::AvailableCapacityNot(value) } - pub fn lt(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::AvailableCapacityLt(value) - } - pub fn lte(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::AvailableCapacityLte(value) - } - pub fn gt(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::AvailableCapacityGt(value) - } - pub fn gte(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::AvailableCapacityGte(value) - } } pub struct LocationSetAvailableCapacity(i32); impl From for LocationSetParam { @@ -9316,12 +8173,6 @@ impl LocationFilesystemField { pub fn not(&self, value: String) -> LocationWhereParam { LocationWhereParam::FilesystemNot(value) } - pub fn has_prefix(&self, value: String) -> LocationWhereParam { - LocationWhereParam::FilesystemHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LocationWhereParam { - LocationWhereParam::FilesystemHasSuffix(value) - } } pub struct LocationSetFilesystem(String); impl From for LocationSetParam { @@ -9344,16 +8195,16 @@ impl LocationDiskTypeField { LocationCursor::DiskType(cursor) } pub fn increment(&self, value: i32) -> LocationSetParam { - LocationSetParam::DiskType(value) + LocationSetParam::SetDiskType(value) } pub fn decrement(&self, value: i32) -> LocationSetParam { - LocationSetParam::DiskType(value) + LocationSetParam::SetDiskType(value) } pub fn multiply(&self, value: i32) -> LocationSetParam { - LocationSetParam::DiskType(value) + LocationSetParam::SetDiskType(value) } pub fn divide(&self, value: i32) -> LocationSetParam { - LocationSetParam::DiskType(value) + LocationSetParam::SetDiskType(value) } pub fn in_vec(&self, value: Vec) -> LocationWhereParam { LocationWhereParam::DiskTypeInVec(value) @@ -9376,18 +8227,6 @@ impl LocationDiskTypeField { pub fn not(&self, value: i32) -> LocationWhereParam { LocationWhereParam::DiskTypeNot(value) } - pub fn lt(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::DiskTypeLt(value) - } - pub fn lte(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::DiskTypeLte(value) - } - pub fn gt(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::DiskTypeGt(value) - } - pub fn gte(&self, value: i32) -> LocationWhereParam { - LocationWhereParam::DiskTypeGte(value) - } } pub struct LocationSetDiskType(i32); impl From for LocationSetParam { @@ -9523,24 +8362,6 @@ impl LocationDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> LocationWhereParam { LocationWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> LocationWhereParam { - LocationWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> LocationWhereParam { - LocationWhereParam::DateCreatedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> LocationWhereParam { - LocationWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> LocationWhereParam { - LocationWhereParam::DateCreatedAfterEquals(value) - } } pub struct LocationSetDateCreated(chrono::DateTime); impl From for LocationSetParam { @@ -9893,10 +8714,6 @@ pub enum LocationWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -9908,8 +8725,6 @@ pub enum LocationWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), LocalPathEquals(String), LocalPathInVec(Vec), LocalPathNotInVec(Vec), @@ -9921,8 +8736,6 @@ pub enum LocationWhereParam { LocalPathStartsWith(String), LocalPathEndsWith(String), LocalPathNot(String), - LocalPathHasPrefix(String), - LocalPathHasSuffix(String), TotalCapacityEquals(i32), TotalCapacityInVec(Vec), TotalCapacityNotInVec(Vec), @@ -9931,10 +8744,6 @@ pub enum LocationWhereParam { TotalCapacityGt(i32), TotalCapacityGte(i32), TotalCapacityNot(i32), - TotalCapacityLt(i32), - TotalCapacityLte(i32), - TotalCapacityGt(i32), - TotalCapacityGte(i32), AvailableCapacityEquals(i32), AvailableCapacityInVec(Vec), AvailableCapacityNotInVec(Vec), @@ -9943,10 +8752,6 @@ pub enum LocationWhereParam { AvailableCapacityGt(i32), AvailableCapacityGte(i32), AvailableCapacityNot(i32), - AvailableCapacityLt(i32), - AvailableCapacityLte(i32), - AvailableCapacityGt(i32), - AvailableCapacityGte(i32), FilesystemEquals(String), FilesystemInVec(Vec), FilesystemNotInVec(Vec), @@ -9958,8 +8763,6 @@ pub enum LocationWhereParam { FilesystemStartsWith(String), FilesystemEndsWith(String), FilesystemNot(String), - FilesystemHasPrefix(String), - FilesystemHasSuffix(String), DiskTypeEquals(i32), DiskTypeInVec(Vec), DiskTypeNotInVec(Vec), @@ -9968,10 +8771,6 @@ pub enum LocationWhereParam { DiskTypeGt(i32), DiskTypeGte(i32), DiskTypeNot(i32), - DiskTypeLt(i32), - DiskTypeLte(i32), - DiskTypeGt(i32), - DiskTypeGte(i32), IsRemovableEquals(bool), IsEjectableEquals(bool), IsRootFilesystemEquals(bool), @@ -9984,10 +8783,6 @@ pub enum LocationWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), FilePathsSome(Vec), FilePathsEvery(Vec), } @@ -10105,42 +8900,6 @@ impl LocationWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -10258,24 +9017,6 @@ impl LocationWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::LocalPathEquals(value) => Field { name: "local_path".into(), fields: Some(vec![Field { @@ -10393,24 +9134,6 @@ impl LocationWhereParam { }]), ..Default::default() }, - Self::LocalPathHasPrefix(value) => Field { - name: "local_path".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LocalPathHasSuffix(value) => Field { - name: "local_path".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TotalCapacityEquals(value) => Field { name: "total_capacity".into(), fields: Some(vec![Field { @@ -10501,42 +9224,6 @@ impl LocationWhereParam { }]), ..Default::default() }, - Self::TotalCapacityLt(value) => Field { - name: "total_capacity".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalCapacityLte(value) => Field { - name: "total_capacity".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalCapacityGt(value) => Field { - name: "total_capacity".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalCapacityGte(value) => Field { - name: "total_capacity".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::AvailableCapacityEquals(value) => Field { name: "available_capacity".into(), fields: Some(vec![Field { @@ -10627,42 +9314,6 @@ impl LocationWhereParam { }]), ..Default::default() }, - Self::AvailableCapacityLt(value) => Field { - name: "available_capacity".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::AvailableCapacityLte(value) => Field { - name: "available_capacity".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::AvailableCapacityGt(value) => Field { - name: "available_capacity".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::AvailableCapacityGte(value) => Field { - name: "available_capacity".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FilesystemEquals(value) => Field { name: "filesystem".into(), fields: Some(vec![Field { @@ -10780,24 +9431,6 @@ impl LocationWhereParam { }]), ..Default::default() }, - Self::FilesystemHasPrefix(value) => Field { - name: "filesystem".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FilesystemHasSuffix(value) => Field { - name: "filesystem".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DiskTypeEquals(value) => Field { name: "disk_type".into(), fields: Some(vec![Field { @@ -10888,42 +9521,6 @@ impl LocationWhereParam { }]), ..Default::default() }, - Self::DiskTypeLt(value) => Field { - name: "disk_type".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DiskTypeLte(value) => Field { - name: "disk_type".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DiskTypeGt(value) => Field { - name: "disk_type".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DiskTypeGte(value) => Field { - name: "disk_type".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::IsRemovableEquals(value) => Field { name: "is_removable".into(), fields: Some(vec![Field { @@ -11050,42 +9647,6 @@ impl LocationWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FilePathsSome(value) => Field { name: "file_paths".into(), fields: Some(vec![Field { @@ -11232,7 +9793,7 @@ pub struct LocationFindFirst<'a> { with_params: Vec, } impl<'a> LocationFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -11291,7 +9852,7 @@ pub struct LocationFindUnique<'a> { with_params: Vec, } impl<'a> LocationFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -11414,7 +9975,7 @@ impl<'a> LocationUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -11704,16 +10265,16 @@ impl FileIdField { FileCursor::Id(cursor) } pub fn increment(&self, value: i32) -> FileSetParam { - FileSetParam::Id(value) + FileSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> FileSetParam { - FileSetParam::Id(value) + FileSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> FileSetParam { - FileSetParam::Id(value) + FileSetParam::SetId(value) } pub fn divide(&self, value: i32) -> FileSetParam { - FileSetParam::Id(value) + FileSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> FileWhereParam { FileWhereParam::IdInVec(value) @@ -11736,18 +10297,6 @@ impl FileIdField { pub fn not(&self, value: i32) -> FileWhereParam { FileWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> FileWhereParam { - FileWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> FileWhereParam { - FileWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> FileWhereParam { - FileWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> FileWhereParam { - FileWhereParam::IdGte(value) - } } pub struct FileSetId(i32); impl From for FileSetParam { @@ -11770,16 +10319,16 @@ impl FileKindField { FileCursor::Kind(cursor) } pub fn increment(&self, value: i32) -> FileSetParam { - FileSetParam::Kind(value) + FileSetParam::SetKind(value) } pub fn decrement(&self, value: i32) -> FileSetParam { - FileSetParam::Kind(value) + FileSetParam::SetKind(value) } pub fn multiply(&self, value: i32) -> FileSetParam { - FileSetParam::Kind(value) + FileSetParam::SetKind(value) } pub fn divide(&self, value: i32) -> FileSetParam { - FileSetParam::Kind(value) + FileSetParam::SetKind(value) } pub fn in_vec(&self, value: Vec) -> FileWhereParam { FileWhereParam::KindInVec(value) @@ -11802,18 +10351,6 @@ impl FileKindField { pub fn not(&self, value: i32) -> FileWhereParam { FileWhereParam::KindNot(value) } - pub fn lt(&self, value: i32) -> FileWhereParam { - FileWhereParam::KindLt(value) - } - pub fn lte(&self, value: i32) -> FileWhereParam { - FileWhereParam::KindLte(value) - } - pub fn gt(&self, value: i32) -> FileWhereParam { - FileWhereParam::KindGt(value) - } - pub fn gte(&self, value: i32) -> FileWhereParam { - FileWhereParam::KindGte(value) - } } pub struct FileSetKind(i32); impl From for FileSetParam { @@ -11865,12 +10402,6 @@ impl FileSizeInBytesField { pub fn not(&self, value: String) -> FileWhereParam { FileWhereParam::SizeInBytesNot(value) } - pub fn has_prefix(&self, value: String) -> FileWhereParam { - FileWhereParam::SizeInBytesHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> FileWhereParam { - FileWhereParam::SizeInBytesHasSuffix(value) - } } pub struct FileSetSizeInBytes(String); impl From for FileSetParam { @@ -11922,12 +10453,6 @@ impl FilePartialChecksumField { pub fn not(&self, value: String) -> FileWhereParam { FileWhereParam::PartialChecksumNot(value) } - pub fn has_prefix(&self, value: String) -> FileWhereParam { - FileWhereParam::PartialChecksumHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> FileWhereParam { - FileWhereParam::PartialChecksumHasSuffix(value) - } } pub struct FileSetPartialChecksum(String); impl From for FileSetParam { @@ -11979,12 +10504,6 @@ impl FileChecksumField { pub fn not(&self, value: String) -> FileWhereParam { FileWhereParam::ChecksumNot(value) } - pub fn has_prefix(&self, value: String) -> FileWhereParam { - FileWhereParam::ChecksumHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> FileWhereParam { - FileWhereParam::ChecksumHasSuffix(value) - } } pub struct FileSetChecksum(String); impl From for FileSetParam { @@ -12007,16 +10526,16 @@ impl FileEncryptionField { FileCursor::Encryption(cursor) } pub fn increment(&self, value: i32) -> FileSetParam { - FileSetParam::Encryption(value) + FileSetParam::SetEncryption(value) } pub fn decrement(&self, value: i32) -> FileSetParam { - FileSetParam::Encryption(value) + FileSetParam::SetEncryption(value) } pub fn multiply(&self, value: i32) -> FileSetParam { - FileSetParam::Encryption(value) + FileSetParam::SetEncryption(value) } pub fn divide(&self, value: i32) -> FileSetParam { - FileSetParam::Encryption(value) + FileSetParam::SetEncryption(value) } pub fn in_vec(&self, value: Vec) -> FileWhereParam { FileWhereParam::EncryptionInVec(value) @@ -12039,18 +10558,6 @@ impl FileEncryptionField { pub fn not(&self, value: i32) -> FileWhereParam { FileWhereParam::EncryptionNot(value) } - pub fn lt(&self, value: i32) -> FileWhereParam { - FileWhereParam::EncryptionLt(value) - } - pub fn lte(&self, value: i32) -> FileWhereParam { - FileWhereParam::EncryptionLte(value) - } - pub fn gt(&self, value: i32) -> FileWhereParam { - FileWhereParam::EncryptionGt(value) - } - pub fn gte(&self, value: i32) -> FileWhereParam { - FileWhereParam::EncryptionGte(value) - } } pub struct FileSetEncryption(i32); impl From for FileSetParam { @@ -12102,12 +10609,6 @@ impl FileIpfsIdField { pub fn not(&self, value: String) -> FileWhereParam { FileWhereParam::IpfsIdNot(value) } - pub fn has_prefix(&self, value: String) -> FileWhereParam { - FileWhereParam::IpfsIdHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> FileWhereParam { - FileWhereParam::IpfsIdHasSuffix(value) - } } pub struct FileSetIpfsId(String); impl From for FileSetParam { @@ -12156,18 +10657,6 @@ impl FileDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> FileWhereParam { FileWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateCreatedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateCreatedAfterEquals(value) - } } pub struct FileSetDateCreated(chrono::DateTime); impl From for FileSetParam { @@ -12216,18 +10705,6 @@ impl FileDateModifiedField { pub fn not(&self, value: chrono::DateTime) -> FileWhereParam { FileWhereParam::DateModifiedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateModifiedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateModifiedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateModifiedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateModifiedAfterEquals(value) - } } pub struct FileSetDateModified(chrono::DateTime); impl From for FileSetParam { @@ -12276,18 +10753,6 @@ impl FileDateIndexedField { pub fn not(&self, value: chrono::DateTime) -> FileWhereParam { FileWhereParam::DateIndexedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateIndexedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateIndexedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateIndexedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> FileWhereParam { - FileWhereParam::DateIndexedAfterEquals(value) - } } pub struct FileSetDateIndexed(chrono::DateTime); impl From for FileSetParam { @@ -12859,10 +11324,6 @@ pub enum FileWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), KindEquals(i32), KindInVec(Vec), KindNotInVec(Vec), @@ -12871,10 +11332,6 @@ pub enum FileWhereParam { KindGt(i32), KindGte(i32), KindNot(i32), - KindLt(i32), - KindLte(i32), - KindGt(i32), - KindGte(i32), SizeInBytesEquals(String), SizeInBytesInVec(Vec), SizeInBytesNotInVec(Vec), @@ -12886,8 +11343,6 @@ pub enum FileWhereParam { SizeInBytesStartsWith(String), SizeInBytesEndsWith(String), SizeInBytesNot(String), - SizeInBytesHasPrefix(String), - SizeInBytesHasSuffix(String), PartialChecksumEquals(String), PartialChecksumInVec(Vec), PartialChecksumNotInVec(Vec), @@ -12899,8 +11354,6 @@ pub enum FileWhereParam { PartialChecksumStartsWith(String), PartialChecksumEndsWith(String), PartialChecksumNot(String), - PartialChecksumHasPrefix(String), - PartialChecksumHasSuffix(String), ChecksumEquals(String), ChecksumInVec(Vec), ChecksumNotInVec(Vec), @@ -12912,8 +11365,6 @@ pub enum FileWhereParam { ChecksumStartsWith(String), ChecksumEndsWith(String), ChecksumNot(String), - ChecksumHasPrefix(String), - ChecksumHasSuffix(String), EncryptionEquals(i32), EncryptionInVec(Vec), EncryptionNotInVec(Vec), @@ -12922,10 +11373,6 @@ pub enum FileWhereParam { EncryptionGt(i32), EncryptionGte(i32), EncryptionNot(i32), - EncryptionLt(i32), - EncryptionLte(i32), - EncryptionGt(i32), - EncryptionGte(i32), IpfsIdEquals(String), IpfsIdInVec(Vec), IpfsIdNotInVec(Vec), @@ -12937,8 +11384,6 @@ pub enum FileWhereParam { IpfsIdStartsWith(String), IpfsIdEndsWith(String), IpfsIdNot(String), - IpfsIdHasPrefix(String), - IpfsIdHasSuffix(String), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -12947,10 +11392,6 @@ pub enum FileWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), DateModifiedEquals(chrono::DateTime), DateModifiedInVec(Vec>), DateModifiedNotInVec(Vec>), @@ -12959,10 +11400,6 @@ pub enum FileWhereParam { DateModifiedGt(chrono::DateTime), DateModifiedGte(chrono::DateTime), DateModifiedNot(chrono::DateTime), - DateModifiedBefore(chrono::DateTime), - DateModifiedAfter(chrono::DateTime), - DateModifiedBeforeEquals(chrono::DateTime), - DateModifiedAfterEquals(chrono::DateTime), DateIndexedEquals(chrono::DateTime), DateIndexedInVec(Vec>), DateIndexedNotInVec(Vec>), @@ -12971,10 +11408,6 @@ pub enum FileWhereParam { DateIndexedGt(chrono::DateTime), DateIndexedGte(chrono::DateTime), DateIndexedNot(chrono::DateTime), - DateIndexedBefore(chrono::DateTime), - DateIndexedAfter(chrono::DateTime), - DateIndexedBeforeEquals(chrono::DateTime), - DateIndexedAfterEquals(chrono::DateTime), FileTagsSome(Vec), FileTagsEvery(Vec), FileLabelsSome(Vec), @@ -13098,42 +11531,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::KindEquals(value) => Field { name: "kind".into(), fields: Some(vec![Field { @@ -13224,42 +11621,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::KindLt(value) => Field { - name: "kind".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::KindLte(value) => Field { - name: "kind".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::KindGt(value) => Field { - name: "kind".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::KindGte(value) => Field { - name: "kind".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::SizeInBytesEquals(value) => Field { name: "size_in_bytes".into(), fields: Some(vec![Field { @@ -13377,24 +11738,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::SizeInBytesHasPrefix(value) => Field { - name: "size_in_bytes".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::SizeInBytesHasSuffix(value) => Field { - name: "size_in_bytes".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::PartialChecksumEquals(value) => Field { name: "partial_checksum".into(), fields: Some(vec![Field { @@ -13512,24 +11855,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::PartialChecksumHasPrefix(value) => Field { - name: "partial_checksum".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::PartialChecksumHasSuffix(value) => Field { - name: "partial_checksum".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::ChecksumEquals(value) => Field { name: "checksum".into(), fields: Some(vec![Field { @@ -13647,24 +11972,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::ChecksumHasPrefix(value) => Field { - name: "checksum".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ChecksumHasSuffix(value) => Field { - name: "checksum".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::EncryptionEquals(value) => Field { name: "encryption".into(), fields: Some(vec![Field { @@ -13755,42 +12062,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::EncryptionLt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionLte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::IpfsIdEquals(value) => Field { name: "ipfs_id".into(), fields: Some(vec![Field { @@ -13908,24 +12179,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::IpfsIdHasPrefix(value) => Field { - name: "ipfs_id".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IpfsIdHasSuffix(value) => Field { - name: "ipfs_id".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -14016,42 +12269,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateModifiedEquals(value) => Field { name: "date_modified".into(), fields: Some(vec![Field { @@ -14142,42 +12359,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::DateModifiedBefore(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfter(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedBeforeEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfterEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateIndexedEquals(value) => Field { name: "date_indexed".into(), fields: Some(vec![Field { @@ -14268,42 +12449,6 @@ impl FileWhereParam { }]), ..Default::default() }, - Self::DateIndexedBefore(value) => Field { - name: "date_indexed".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateIndexedAfter(value) => Field { - name: "date_indexed".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateIndexedBeforeEquals(value) => Field { - name: "date_indexed".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateIndexedAfterEquals(value) => Field { - name: "date_indexed".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FileTagsSome(value) => Field { name: "file_tags".into(), fields: Some(vec![Field { @@ -14506,7 +12651,7 @@ pub struct FileFindFirst<'a> { with_params: Vec, } impl<'a> FileFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -14565,7 +12710,7 @@ pub struct FileFindUnique<'a> { with_params: Vec, } impl<'a> FileFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -14695,7 +12840,7 @@ impl<'a> FileUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -15016,16 +13161,16 @@ impl FilePathIdField { FilePathCursor::Id(cursor) } pub fn increment(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::Id(value) + FilePathSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::Id(value) + FilePathSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::Id(value) + FilePathSetParam::SetId(value) } pub fn divide(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::Id(value) + FilePathSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> FilePathWhereParam { FilePathWhereParam::IdInVec(value) @@ -15048,18 +13193,6 @@ impl FilePathIdField { pub fn not(&self, value: i32) -> FilePathWhereParam { FilePathWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::IdGte(value) - } } pub struct FilePathSetId(i32); impl From for FilePathSetParam { @@ -15103,16 +13236,16 @@ impl FilePathLocationIdField { FilePathCursor::LocationId(cursor) } pub fn increment(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::LocationId(value) + FilePathSetParam::SetLocationId(value) } pub fn decrement(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::LocationId(value) + FilePathSetParam::SetLocationId(value) } pub fn multiply(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::LocationId(value) + FilePathSetParam::SetLocationId(value) } pub fn divide(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::LocationId(value) + FilePathSetParam::SetLocationId(value) } pub fn in_vec(&self, value: Vec) -> FilePathWhereParam { FilePathWhereParam::LocationIdInVec(value) @@ -15135,18 +13268,6 @@ impl FilePathLocationIdField { pub fn not(&self, value: i32) -> FilePathWhereParam { FilePathWhereParam::LocationIdNot(value) } - pub fn lt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::LocationIdLt(value) - } - pub fn lte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::LocationIdLte(value) - } - pub fn gt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::LocationIdGt(value) - } - pub fn gte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::LocationIdGte(value) - } } pub struct FilePathSetLocationId(i32); impl From for FilePathSetParam { @@ -15198,12 +13319,6 @@ impl FilePathMaterializedPathField { pub fn not(&self, value: String) -> FilePathWhereParam { FilePathWhereParam::MaterializedPathNot(value) } - pub fn has_prefix(&self, value: String) -> FilePathWhereParam { - FilePathWhereParam::MaterializedPathHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> FilePathWhereParam { - FilePathWhereParam::MaterializedPathHasSuffix(value) - } } pub struct FilePathSetMaterializedPath(String); impl From for FilePathSetParam { @@ -15255,12 +13370,6 @@ impl FilePathNameField { pub fn not(&self, value: String) -> FilePathWhereParam { FilePathWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> FilePathWhereParam { - FilePathWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> FilePathWhereParam { - FilePathWhereParam::NameHasSuffix(value) - } } pub struct FilePathSetName(String); impl From for FilePathSetParam { @@ -15312,12 +13421,6 @@ impl FilePathExtensionField { pub fn not(&self, value: String) -> FilePathWhereParam { FilePathWhereParam::ExtensionNot(value) } - pub fn has_prefix(&self, value: String) -> FilePathWhereParam { - FilePathWhereParam::ExtensionHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> FilePathWhereParam { - FilePathWhereParam::ExtensionHasSuffix(value) - } } pub struct FilePathSetExtension(String); impl From for FilePathSetParam { @@ -15340,16 +13443,16 @@ impl FilePathFileIdField { FilePathCursor::FileId(cursor) } pub fn increment(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::FileId(value) + FilePathSetParam::SetFileId(value) } pub fn decrement(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::FileId(value) + FilePathSetParam::SetFileId(value) } pub fn multiply(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::FileId(value) + FilePathSetParam::SetFileId(value) } pub fn divide(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::FileId(value) + FilePathSetParam::SetFileId(value) } pub fn in_vec(&self, value: Vec) -> FilePathWhereParam { FilePathWhereParam::FileIdInVec(value) @@ -15372,18 +13475,6 @@ impl FilePathFileIdField { pub fn not(&self, value: i32) -> FilePathWhereParam { FilePathWhereParam::FileIdNot(value) } - pub fn lt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::FileIdLt(value) - } - pub fn lte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::FileIdLte(value) - } - pub fn gt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::FileIdGt(value) - } - pub fn gte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::FileIdGte(value) - } } pub struct FilePathSetFileId(i32); impl From for FilePathSetParam { @@ -15406,16 +13497,16 @@ impl FilePathParentIdField { FilePathCursor::ParentId(cursor) } pub fn increment(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::ParentId(value) + FilePathSetParam::SetParentId(value) } pub fn decrement(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::ParentId(value) + FilePathSetParam::SetParentId(value) } pub fn multiply(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::ParentId(value) + FilePathSetParam::SetParentId(value) } pub fn divide(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::ParentId(value) + FilePathSetParam::SetParentId(value) } pub fn in_vec(&self, value: Vec) -> FilePathWhereParam { FilePathWhereParam::ParentIdInVec(value) @@ -15438,18 +13529,6 @@ impl FilePathParentIdField { pub fn not(&self, value: i32) -> FilePathWhereParam { FilePathWhereParam::ParentIdNot(value) } - pub fn lt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::ParentIdLt(value) - } - pub fn lte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::ParentIdLte(value) - } - pub fn gt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::ParentIdGt(value) - } - pub fn gte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::ParentIdGte(value) - } } pub struct FilePathSetParentId(i32); impl From for FilePathSetParam { @@ -15472,16 +13551,16 @@ impl FilePathEncryptionField { FilePathCursor::Encryption(cursor) } pub fn increment(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::Encryption(value) + FilePathSetParam::SetEncryption(value) } pub fn decrement(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::Encryption(value) + FilePathSetParam::SetEncryption(value) } pub fn multiply(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::Encryption(value) + FilePathSetParam::SetEncryption(value) } pub fn divide(&self, value: i32) -> FilePathSetParam { - FilePathSetParam::Encryption(value) + FilePathSetParam::SetEncryption(value) } pub fn in_vec(&self, value: Vec) -> FilePathWhereParam { FilePathWhereParam::EncryptionInVec(value) @@ -15504,18 +13583,6 @@ impl FilePathEncryptionField { pub fn not(&self, value: i32) -> FilePathWhereParam { FilePathWhereParam::EncryptionNot(value) } - pub fn lt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::EncryptionLt(value) - } - pub fn lte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::EncryptionLte(value) - } - pub fn gt(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::EncryptionGt(value) - } - pub fn gte(&self, value: i32) -> FilePathWhereParam { - FilePathWhereParam::EncryptionGte(value) - } } pub struct FilePathSetEncryption(i32); impl From for FilePathSetParam { @@ -15567,12 +13634,6 @@ impl FilePathPermissionsField { pub fn not(&self, value: String) -> FilePathWhereParam { FilePathWhereParam::PermissionsNot(value) } - pub fn has_prefix(&self, value: String) -> FilePathWhereParam { - FilePathWhereParam::PermissionsHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> FilePathWhereParam { - FilePathWhereParam::PermissionsHasSuffix(value) - } } pub struct FilePathSetPermissions(String); impl From for FilePathSetParam { @@ -15624,24 +13685,6 @@ impl FilePathDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> FilePathWhereParam { FilePathWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> FilePathWhereParam { - FilePathWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> FilePathWhereParam { - FilePathWhereParam::DateCreatedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> FilePathWhereParam { - FilePathWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> FilePathWhereParam { - FilePathWhereParam::DateCreatedAfterEquals(value) - } } pub struct FilePathSetDateCreated(chrono::DateTime); impl From for FilePathSetParam { @@ -15693,24 +13736,6 @@ impl FilePathDateModifiedField { pub fn not(&self, value: chrono::DateTime) -> FilePathWhereParam { FilePathWhereParam::DateModifiedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> FilePathWhereParam { - FilePathWhereParam::DateModifiedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> FilePathWhereParam { - FilePathWhereParam::DateModifiedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> FilePathWhereParam { - FilePathWhereParam::DateModifiedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> FilePathWhereParam { - FilePathWhereParam::DateModifiedAfterEquals(value) - } } pub struct FilePathSetDateModified(chrono::DateTime); impl From for FilePathSetParam { @@ -15762,24 +13787,6 @@ impl FilePathDateIndexedField { pub fn not(&self, value: chrono::DateTime) -> FilePathWhereParam { FilePathWhereParam::DateIndexedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> FilePathWhereParam { - FilePathWhereParam::DateIndexedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> FilePathWhereParam { - FilePathWhereParam::DateIndexedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> FilePathWhereParam { - FilePathWhereParam::DateIndexedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> FilePathWhereParam { - FilePathWhereParam::DateIndexedAfterEquals(value) - } } pub struct FilePathSetDateIndexed(chrono::DateTime); impl From for FilePathSetParam { @@ -16304,10 +14311,6 @@ pub enum FilePathWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), IsDirEquals(bool), LocationIdEquals(i32), LocationIdInVec(Vec), @@ -16317,10 +14320,6 @@ pub enum FilePathWhereParam { LocationIdGt(i32), LocationIdGte(i32), LocationIdNot(i32), - LocationIdLt(i32), - LocationIdLte(i32), - LocationIdGt(i32), - LocationIdGte(i32), MaterializedPathEquals(String), MaterializedPathInVec(Vec), MaterializedPathNotInVec(Vec), @@ -16332,8 +14331,6 @@ pub enum FilePathWhereParam { MaterializedPathStartsWith(String), MaterializedPathEndsWith(String), MaterializedPathNot(String), - MaterializedPathHasPrefix(String), - MaterializedPathHasSuffix(String), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -16345,8 +14342,6 @@ pub enum FilePathWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), ExtensionEquals(String), ExtensionInVec(Vec), ExtensionNotInVec(Vec), @@ -16358,8 +14353,6 @@ pub enum FilePathWhereParam { ExtensionStartsWith(String), ExtensionEndsWith(String), ExtensionNot(String), - ExtensionHasPrefix(String), - ExtensionHasSuffix(String), FileIdEquals(i32), FileIdInVec(Vec), FileIdNotInVec(Vec), @@ -16368,10 +14361,6 @@ pub enum FilePathWhereParam { FileIdGt(i32), FileIdGte(i32), FileIdNot(i32), - FileIdLt(i32), - FileIdLte(i32), - FileIdGt(i32), - FileIdGte(i32), ParentIdEquals(i32), ParentIdInVec(Vec), ParentIdNotInVec(Vec), @@ -16380,10 +14369,6 @@ pub enum FilePathWhereParam { ParentIdGt(i32), ParentIdGte(i32), ParentIdNot(i32), - ParentIdLt(i32), - ParentIdLte(i32), - ParentIdGt(i32), - ParentIdGte(i32), EncryptionEquals(i32), EncryptionInVec(Vec), EncryptionNotInVec(Vec), @@ -16392,10 +14377,6 @@ pub enum FilePathWhereParam { EncryptionGt(i32), EncryptionGte(i32), EncryptionNot(i32), - EncryptionLt(i32), - EncryptionLte(i32), - EncryptionGt(i32), - EncryptionGte(i32), PermissionsEquals(String), PermissionsInVec(Vec), PermissionsNotInVec(Vec), @@ -16407,8 +14388,6 @@ pub enum FilePathWhereParam { PermissionsStartsWith(String), PermissionsEndsWith(String), PermissionsNot(String), - PermissionsHasPrefix(String), - PermissionsHasSuffix(String), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -16417,10 +14396,6 @@ pub enum FilePathWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), DateModifiedEquals(chrono::DateTime), DateModifiedInVec(Vec>), DateModifiedNotInVec(Vec>), @@ -16429,10 +14404,6 @@ pub enum FilePathWhereParam { DateModifiedGt(chrono::DateTime), DateModifiedGte(chrono::DateTime), DateModifiedNot(chrono::DateTime), - DateModifiedBefore(chrono::DateTime), - DateModifiedAfter(chrono::DateTime), - DateModifiedBeforeEquals(chrono::DateTime), - DateModifiedAfterEquals(chrono::DateTime), DateIndexedEquals(chrono::DateTime), DateIndexedInVec(Vec>), DateIndexedNotInVec(Vec>), @@ -16441,10 +14412,6 @@ pub enum FilePathWhereParam { DateIndexedGt(chrono::DateTime), DateIndexedGte(chrono::DateTime), DateIndexedNot(chrono::DateTime), - DateIndexedBefore(chrono::DateTime), - DateIndexedAfter(chrono::DateTime), - DateIndexedBeforeEquals(chrono::DateTime), - DateIndexedAfterEquals(chrono::DateTime), FileIs(Vec), LocationIs(Vec), ParentIs(Vec), @@ -16565,42 +14532,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::IsDirEquals(value) => Field { name: "is_dir".into(), fields: Some(vec![Field { @@ -16700,42 +14631,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::LocationIdLt(value) => Field { - name: "location_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LocationIdLte(value) => Field { - name: "location_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LocationIdGt(value) => Field { - name: "location_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LocationIdGte(value) => Field { - name: "location_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::MaterializedPathEquals(value) => Field { name: "materialized_path".into(), fields: Some(vec![Field { @@ -16853,24 +14748,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::MaterializedPathHasPrefix(value) => Field { - name: "materialized_path".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::MaterializedPathHasSuffix(value) => Field { - name: "materialized_path".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -16988,24 +14865,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::ExtensionEquals(value) => Field { name: "extension".into(), fields: Some(vec![Field { @@ -17123,24 +14982,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::ExtensionHasPrefix(value) => Field { - name: "extension".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ExtensionHasSuffix(value) => Field { - name: "extension".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FileIdEquals(value) => Field { name: "file_id".into(), fields: Some(vec![Field { @@ -17231,42 +15072,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::FileIdLt(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdLte(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdGt(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdGte(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::ParentIdEquals(value) => Field { name: "parent_id".into(), fields: Some(vec![Field { @@ -17357,42 +15162,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::ParentIdLt(value) => Field { - name: "parent_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ParentIdLte(value) => Field { - name: "parent_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ParentIdGt(value) => Field { - name: "parent_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ParentIdGte(value) => Field { - name: "parent_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::EncryptionEquals(value) => Field { name: "encryption".into(), fields: Some(vec![Field { @@ -17483,42 +15252,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::EncryptionLt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionLte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::PermissionsEquals(value) => Field { name: "permissions".into(), fields: Some(vec![Field { @@ -17636,24 +15369,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::PermissionsHasPrefix(value) => Field { - name: "permissions".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::PermissionsHasSuffix(value) => Field { - name: "permissions".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -17744,42 +15459,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateModifiedEquals(value) => Field { name: "date_modified".into(), fields: Some(vec![Field { @@ -17870,42 +15549,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::DateModifiedBefore(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfter(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedBeforeEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfterEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateIndexedEquals(value) => Field { name: "date_indexed".into(), fields: Some(vec![Field { @@ -17996,42 +15639,6 @@ impl FilePathWhereParam { }]), ..Default::default() }, - Self::DateIndexedBefore(value) => Field { - name: "date_indexed".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateIndexedAfter(value) => Field { - name: "date_indexed".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateIndexedBeforeEquals(value) => Field { - name: "date_indexed".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateIndexedAfterEquals(value) => Field { - name: "date_indexed".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FileIs(value) => Field { name: "file".into(), fields: Some(vec![Field { @@ -18205,7 +15812,7 @@ pub struct FilePathFindFirst<'a> { with_params: Vec, } impl<'a> FilePathFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -18264,7 +15871,7 @@ pub struct FilePathFindUnique<'a> { with_params: Vec, } impl<'a> FilePathFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -18394,7 +16001,7 @@ impl<'a> FilePathUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -18649,16 +16256,16 @@ impl TagIdField { TagCursor::Id(cursor) } pub fn increment(&self, value: i32) -> TagSetParam { - TagSetParam::Id(value) + TagSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> TagSetParam { - TagSetParam::Id(value) + TagSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> TagSetParam { - TagSetParam::Id(value) + TagSetParam::SetId(value) } pub fn divide(&self, value: i32) -> TagSetParam { - TagSetParam::Id(value) + TagSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> TagWhereParam { TagWhereParam::IdInVec(value) @@ -18681,18 +16288,6 @@ impl TagIdField { pub fn not(&self, value: i32) -> TagWhereParam { TagWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> TagWhereParam { - TagWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> TagWhereParam { - TagWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> TagWhereParam { - TagWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> TagWhereParam { - TagWhereParam::IdGte(value) - } } pub struct TagSetId(i32); impl From for TagSetParam { @@ -18744,12 +16339,6 @@ impl TagNameField { pub fn not(&self, value: String) -> TagWhereParam { TagWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> TagWhereParam { - TagWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> TagWhereParam { - TagWhereParam::NameHasSuffix(value) - } } pub struct TagSetName(String); impl From for TagSetParam { @@ -18772,16 +16361,16 @@ impl TagEncryptionField { TagCursor::Encryption(cursor) } pub fn increment(&self, value: i32) -> TagSetParam { - TagSetParam::Encryption(value) + TagSetParam::SetEncryption(value) } pub fn decrement(&self, value: i32) -> TagSetParam { - TagSetParam::Encryption(value) + TagSetParam::SetEncryption(value) } pub fn multiply(&self, value: i32) -> TagSetParam { - TagSetParam::Encryption(value) + TagSetParam::SetEncryption(value) } pub fn divide(&self, value: i32) -> TagSetParam { - TagSetParam::Encryption(value) + TagSetParam::SetEncryption(value) } pub fn in_vec(&self, value: Vec) -> TagWhereParam { TagWhereParam::EncryptionInVec(value) @@ -18804,18 +16393,6 @@ impl TagEncryptionField { pub fn not(&self, value: i32) -> TagWhereParam { TagWhereParam::EncryptionNot(value) } - pub fn lt(&self, value: i32) -> TagWhereParam { - TagWhereParam::EncryptionLt(value) - } - pub fn lte(&self, value: i32) -> TagWhereParam { - TagWhereParam::EncryptionLte(value) - } - pub fn gt(&self, value: i32) -> TagWhereParam { - TagWhereParam::EncryptionGt(value) - } - pub fn gte(&self, value: i32) -> TagWhereParam { - TagWhereParam::EncryptionGte(value) - } } pub struct TagSetEncryption(i32); impl From for TagSetParam { @@ -18838,16 +16415,16 @@ impl TagTotalFilesField { TagCursor::TotalFiles(cursor) } pub fn increment(&self, value: i32) -> TagSetParam { - TagSetParam::TotalFiles(value) + TagSetParam::SetTotalFiles(value) } pub fn decrement(&self, value: i32) -> TagSetParam { - TagSetParam::TotalFiles(value) + TagSetParam::SetTotalFiles(value) } pub fn multiply(&self, value: i32) -> TagSetParam { - TagSetParam::TotalFiles(value) + TagSetParam::SetTotalFiles(value) } pub fn divide(&self, value: i32) -> TagSetParam { - TagSetParam::TotalFiles(value) + TagSetParam::SetTotalFiles(value) } pub fn in_vec(&self, value: Vec) -> TagWhereParam { TagWhereParam::TotalFilesInVec(value) @@ -18870,18 +16447,6 @@ impl TagTotalFilesField { pub fn not(&self, value: i32) -> TagWhereParam { TagWhereParam::TotalFilesNot(value) } - pub fn lt(&self, value: i32) -> TagWhereParam { - TagWhereParam::TotalFilesLt(value) - } - pub fn lte(&self, value: i32) -> TagWhereParam { - TagWhereParam::TotalFilesLte(value) - } - pub fn gt(&self, value: i32) -> TagWhereParam { - TagWhereParam::TotalFilesGt(value) - } - pub fn gte(&self, value: i32) -> TagWhereParam { - TagWhereParam::TotalFilesGte(value) - } } pub struct TagSetTotalFiles(i32); impl From for TagSetParam { @@ -18904,16 +16469,16 @@ impl TagRedundancyGoalField { TagCursor::RedundancyGoal(cursor) } pub fn increment(&self, value: i32) -> TagSetParam { - TagSetParam::RedundancyGoal(value) + TagSetParam::SetRedundancyGoal(value) } pub fn decrement(&self, value: i32) -> TagSetParam { - TagSetParam::RedundancyGoal(value) + TagSetParam::SetRedundancyGoal(value) } pub fn multiply(&self, value: i32) -> TagSetParam { - TagSetParam::RedundancyGoal(value) + TagSetParam::SetRedundancyGoal(value) } pub fn divide(&self, value: i32) -> TagSetParam { - TagSetParam::RedundancyGoal(value) + TagSetParam::SetRedundancyGoal(value) } pub fn in_vec(&self, value: Vec) -> TagWhereParam { TagWhereParam::RedundancyGoalInVec(value) @@ -18936,18 +16501,6 @@ impl TagRedundancyGoalField { pub fn not(&self, value: i32) -> TagWhereParam { TagWhereParam::RedundancyGoalNot(value) } - pub fn lt(&self, value: i32) -> TagWhereParam { - TagWhereParam::RedundancyGoalLt(value) - } - pub fn lte(&self, value: i32) -> TagWhereParam { - TagWhereParam::RedundancyGoalLte(value) - } - pub fn gt(&self, value: i32) -> TagWhereParam { - TagWhereParam::RedundancyGoalGt(value) - } - pub fn gte(&self, value: i32) -> TagWhereParam { - TagWhereParam::RedundancyGoalGte(value) - } } pub struct TagSetRedundancyGoal(i32); impl From for TagSetParam { @@ -18993,18 +16546,6 @@ impl TagDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> TagWhereParam { TagWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> TagWhereParam { - TagWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> TagWhereParam { - TagWhereParam::DateCreatedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> TagWhereParam { - TagWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> TagWhereParam { - TagWhereParam::DateCreatedAfterEquals(value) - } } pub struct TagSetDateCreated(chrono::DateTime); impl From for TagSetParam { @@ -19050,18 +16591,6 @@ impl TagDateModifiedField { pub fn not(&self, value: chrono::DateTime) -> TagWhereParam { TagWhereParam::DateModifiedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> TagWhereParam { - TagWhereParam::DateModifiedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> TagWhereParam { - TagWhereParam::DateModifiedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> TagWhereParam { - TagWhereParam::DateModifiedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> TagWhereParam { - TagWhereParam::DateModifiedAfterEquals(value) - } } pub struct TagSetDateModified(chrono::DateTime); impl From for TagSetParam { @@ -19324,10 +16853,6 @@ pub enum TagWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -19339,8 +16864,6 @@ pub enum TagWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), EncryptionEquals(i32), EncryptionInVec(Vec), EncryptionNotInVec(Vec), @@ -19349,10 +16872,6 @@ pub enum TagWhereParam { EncryptionGt(i32), EncryptionGte(i32), EncryptionNot(i32), - EncryptionLt(i32), - EncryptionLte(i32), - EncryptionGt(i32), - EncryptionGte(i32), TotalFilesEquals(i32), TotalFilesInVec(Vec), TotalFilesNotInVec(Vec), @@ -19361,10 +16880,6 @@ pub enum TagWhereParam { TotalFilesGt(i32), TotalFilesGte(i32), TotalFilesNot(i32), - TotalFilesLt(i32), - TotalFilesLte(i32), - TotalFilesGt(i32), - TotalFilesGte(i32), RedundancyGoalEquals(i32), RedundancyGoalInVec(Vec), RedundancyGoalNotInVec(Vec), @@ -19373,10 +16888,6 @@ pub enum TagWhereParam { RedundancyGoalGt(i32), RedundancyGoalGte(i32), RedundancyGoalNot(i32), - RedundancyGoalLt(i32), - RedundancyGoalLte(i32), - RedundancyGoalGt(i32), - RedundancyGoalGte(i32), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -19385,10 +16896,6 @@ pub enum TagWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), DateModifiedEquals(chrono::DateTime), DateModifiedInVec(Vec>), DateModifiedNotInVec(Vec>), @@ -19397,10 +16904,6 @@ pub enum TagWhereParam { DateModifiedGt(chrono::DateTime), DateModifiedGte(chrono::DateTime), DateModifiedNot(chrono::DateTime), - DateModifiedBefore(chrono::DateTime), - DateModifiedAfter(chrono::DateTime), - DateModifiedBeforeEquals(chrono::DateTime), - DateModifiedAfterEquals(chrono::DateTime), TagFilesSome(Vec), TagFilesEvery(Vec), } @@ -19518,42 +17021,6 @@ impl TagWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -19671,24 +17138,6 @@ impl TagWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::EncryptionEquals(value) => Field { name: "encryption".into(), fields: Some(vec![Field { @@ -19779,42 +17228,6 @@ impl TagWhereParam { }]), ..Default::default() }, - Self::EncryptionLt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionLte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TotalFilesEquals(value) => Field { name: "total_files".into(), fields: Some(vec![Field { @@ -19905,42 +17318,6 @@ impl TagWhereParam { }]), ..Default::default() }, - Self::TotalFilesLt(value) => Field { - name: "total_files".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalFilesLte(value) => Field { - name: "total_files".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalFilesGt(value) => Field { - name: "total_files".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TotalFilesGte(value) => Field { - name: "total_files".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::RedundancyGoalEquals(value) => Field { name: "redundancy_goal".into(), fields: Some(vec![Field { @@ -20031,42 +17408,6 @@ impl TagWhereParam { }]), ..Default::default() }, - Self::RedundancyGoalLt(value) => Field { - name: "redundancy_goal".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::RedundancyGoalLte(value) => Field { - name: "redundancy_goal".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::RedundancyGoalGt(value) => Field { - name: "redundancy_goal".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::RedundancyGoalGte(value) => Field { - name: "redundancy_goal".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -20157,42 +17498,6 @@ impl TagWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateModifiedEquals(value) => Field { name: "date_modified".into(), fields: Some(vec![Field { @@ -20283,42 +17588,6 @@ impl TagWhereParam { }]), ..Default::default() }, - Self::DateModifiedBefore(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfter(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedBeforeEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfterEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TagFilesSome(value) => Field { name: "tag_files".into(), fields: Some(vec![Field { @@ -20465,7 +17734,7 @@ pub struct TagFindFirst<'a> { with_params: Vec, } impl<'a> TagFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -20524,7 +17793,7 @@ pub struct TagFindUnique<'a> { with_params: Vec, } impl<'a> TagFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -20647,7 +17916,7 @@ impl<'a> TagUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -20920,24 +18189,6 @@ impl TagOnFileDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> TagOnFileWhereParam { TagOnFileWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> TagOnFileWhereParam { - TagOnFileWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> TagOnFileWhereParam { - TagOnFileWhereParam::DateCreatedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> TagOnFileWhereParam { - TagOnFileWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> TagOnFileWhereParam { - TagOnFileWhereParam::DateCreatedAfterEquals(value) - } } pub struct TagOnFileSetDateCreated(chrono::DateTime); impl From for TagOnFileSetParam { @@ -20960,16 +18211,16 @@ impl TagOnFileTagIdField { TagOnFileCursor::TagId(cursor) } pub fn increment(&self, value: i32) -> TagOnFileSetParam { - TagOnFileSetParam::TagId(value) + TagOnFileSetParam::SetTagId(value) } pub fn decrement(&self, value: i32) -> TagOnFileSetParam { - TagOnFileSetParam::TagId(value) + TagOnFileSetParam::SetTagId(value) } pub fn multiply(&self, value: i32) -> TagOnFileSetParam { - TagOnFileSetParam::TagId(value) + TagOnFileSetParam::SetTagId(value) } pub fn divide(&self, value: i32) -> TagOnFileSetParam { - TagOnFileSetParam::TagId(value) + TagOnFileSetParam::SetTagId(value) } pub fn in_vec(&self, value: Vec) -> TagOnFileWhereParam { TagOnFileWhereParam::TagIdInVec(value) @@ -20992,18 +18243,6 @@ impl TagOnFileTagIdField { pub fn not(&self, value: i32) -> TagOnFileWhereParam { TagOnFileWhereParam::TagIdNot(value) } - pub fn lt(&self, value: i32) -> TagOnFileWhereParam { - TagOnFileWhereParam::TagIdLt(value) - } - pub fn lte(&self, value: i32) -> TagOnFileWhereParam { - TagOnFileWhereParam::TagIdLte(value) - } - pub fn gt(&self, value: i32) -> TagOnFileWhereParam { - TagOnFileWhereParam::TagIdGt(value) - } - pub fn gte(&self, value: i32) -> TagOnFileWhereParam { - TagOnFileWhereParam::TagIdGte(value) - } } pub struct TagOnFileSetTagId(i32); impl From for TagOnFileSetParam { @@ -21044,16 +18283,16 @@ impl TagOnFileFileIdField { TagOnFileCursor::FileId(cursor) } pub fn increment(&self, value: i32) -> TagOnFileSetParam { - TagOnFileSetParam::FileId(value) + TagOnFileSetParam::SetFileId(value) } pub fn decrement(&self, value: i32) -> TagOnFileSetParam { - TagOnFileSetParam::FileId(value) + TagOnFileSetParam::SetFileId(value) } pub fn multiply(&self, value: i32) -> TagOnFileSetParam { - TagOnFileSetParam::FileId(value) + TagOnFileSetParam::SetFileId(value) } pub fn divide(&self, value: i32) -> TagOnFileSetParam { - TagOnFileSetParam::FileId(value) + TagOnFileSetParam::SetFileId(value) } pub fn in_vec(&self, value: Vec) -> TagOnFileWhereParam { TagOnFileWhereParam::FileIdInVec(value) @@ -21076,18 +18315,6 @@ impl TagOnFileFileIdField { pub fn not(&self, value: i32) -> TagOnFileWhereParam { TagOnFileWhereParam::FileIdNot(value) } - pub fn lt(&self, value: i32) -> TagOnFileWhereParam { - TagOnFileWhereParam::FileIdLt(value) - } - pub fn lte(&self, value: i32) -> TagOnFileWhereParam { - TagOnFileWhereParam::FileIdLte(value) - } - pub fn gt(&self, value: i32) -> TagOnFileWhereParam { - TagOnFileWhereParam::FileIdGt(value) - } - pub fn gte(&self, value: i32) -> TagOnFileWhereParam { - TagOnFileWhereParam::FileIdGte(value) - } } pub struct TagOnFileSetFileId(i32); impl From for TagOnFileSetParam { @@ -21249,10 +18476,6 @@ pub enum TagOnFileWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), TagIdEquals(i32), TagIdInVec(Vec), TagIdNotInVec(Vec), @@ -21261,10 +18484,6 @@ pub enum TagOnFileWhereParam { TagIdGt(i32), TagIdGte(i32), TagIdNot(i32), - TagIdLt(i32), - TagIdLte(i32), - TagIdGt(i32), - TagIdGte(i32), TagIs(Vec), FileIdEquals(i32), FileIdInVec(Vec), @@ -21274,10 +18493,6 @@ pub enum TagOnFileWhereParam { FileIdGt(i32), FileIdGte(i32), FileIdNot(i32), - FileIdLt(i32), - FileIdLte(i32), - FileIdGt(i32), - FileIdGte(i32), FileIs(Vec), } impl TagOnFileWhereParam { @@ -21394,42 +18609,6 @@ impl TagOnFileWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TagIdEquals(value) => Field { name: "tag_id".into(), fields: Some(vec![Field { @@ -21520,42 +18699,6 @@ impl TagOnFileWhereParam { }]), ..Default::default() }, - Self::TagIdLt(value) => Field { - name: "tag_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TagIdLte(value) => Field { - name: "tag_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TagIdGt(value) => Field { - name: "tag_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TagIdGte(value) => Field { - name: "tag_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TagIs(value) => Field { name: "tag".into(), fields: Some(vec![Field { @@ -21655,42 +18798,6 @@ impl TagOnFileWhereParam { }]), ..Default::default() }, - Self::FileIdLt(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdLte(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdGt(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdGte(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FileIs(value) => Field { name: "file".into(), fields: Some(vec![Field { @@ -21824,7 +18931,7 @@ pub struct TagOnFileFindFirst<'a> { with_params: Vec, } impl<'a> TagOnFileFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -21883,7 +18990,7 @@ pub struct TagOnFileFindUnique<'a> { with_params: Vec, } impl<'a> TagOnFileFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -22013,7 +19120,7 @@ impl<'a> TagOnFileUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -22250,16 +19357,16 @@ impl LabelIdField { LabelCursor::Id(cursor) } pub fn increment(&self, value: i32) -> LabelSetParam { - LabelSetParam::Id(value) + LabelSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> LabelSetParam { - LabelSetParam::Id(value) + LabelSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> LabelSetParam { - LabelSetParam::Id(value) + LabelSetParam::SetId(value) } pub fn divide(&self, value: i32) -> LabelSetParam { - LabelSetParam::Id(value) + LabelSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> LabelWhereParam { LabelWhereParam::IdInVec(value) @@ -22282,18 +19389,6 @@ impl LabelIdField { pub fn not(&self, value: i32) -> LabelWhereParam { LabelWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> LabelWhereParam { - LabelWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> LabelWhereParam { - LabelWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> LabelWhereParam { - LabelWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> LabelWhereParam { - LabelWhereParam::IdGte(value) - } } pub struct LabelSetId(i32); impl From for LabelSetParam { @@ -22345,12 +19440,6 @@ impl LabelNameField { pub fn not(&self, value: String) -> LabelWhereParam { LabelWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> LabelWhereParam { - LabelWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> LabelWhereParam { - LabelWhereParam::NameHasSuffix(value) - } } pub struct LabelSetName(String); impl From for LabelSetParam { @@ -22399,18 +19488,6 @@ impl LabelDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> LabelWhereParam { LabelWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> LabelWhereParam { - LabelWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> LabelWhereParam { - LabelWhereParam::DateCreatedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> LabelWhereParam { - LabelWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> LabelWhereParam { - LabelWhereParam::DateCreatedAfterEquals(value) - } } pub struct LabelSetDateCreated(chrono::DateTime); impl From for LabelSetParam { @@ -22459,18 +19536,6 @@ impl LabelDateModifiedField { pub fn not(&self, value: chrono::DateTime) -> LabelWhereParam { LabelWhereParam::DateModifiedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> LabelWhereParam { - LabelWhereParam::DateModifiedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> LabelWhereParam { - LabelWhereParam::DateModifiedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> LabelWhereParam { - LabelWhereParam::DateModifiedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> LabelWhereParam { - LabelWhereParam::DateModifiedAfterEquals(value) - } } pub struct LabelSetDateModified(chrono::DateTime); impl From for LabelSetParam { @@ -22679,10 +19744,6 @@ pub enum LabelWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -22694,8 +19755,6 @@ pub enum LabelWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -22704,10 +19763,6 @@ pub enum LabelWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), DateModifiedEquals(chrono::DateTime), DateModifiedInVec(Vec>), DateModifiedNotInVec(Vec>), @@ -22716,10 +19771,6 @@ pub enum LabelWhereParam { DateModifiedGt(chrono::DateTime), DateModifiedGte(chrono::DateTime), DateModifiedNot(chrono::DateTime), - DateModifiedBefore(chrono::DateTime), - DateModifiedAfter(chrono::DateTime), - DateModifiedBeforeEquals(chrono::DateTime), - DateModifiedAfterEquals(chrono::DateTime), LabelFilesSome(Vec), LabelFilesEvery(Vec), } @@ -22837,42 +19888,6 @@ impl LabelWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -22990,24 +20005,6 @@ impl LabelWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -23098,42 +20095,6 @@ impl LabelWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateModifiedEquals(value) => Field { name: "date_modified".into(), fields: Some(vec![Field { @@ -23224,42 +20185,6 @@ impl LabelWhereParam { }]), ..Default::default() }, - Self::DateModifiedBefore(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfter(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedBeforeEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfterEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::LabelFilesSome(value) => Field { name: "label_files".into(), fields: Some(vec![Field { @@ -23406,7 +20331,7 @@ pub struct LabelFindFirst<'a> { with_params: Vec, } impl<'a> LabelFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -23465,7 +20390,7 @@ pub struct LabelFindUnique<'a> { with_params: Vec, } impl<'a> LabelFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -23588,7 +20513,7 @@ impl<'a> LabelUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -23861,24 +20786,6 @@ impl LabelOnFileDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> LabelOnFileWhereParam { LabelOnFileWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::DateCreatedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::DateCreatedAfterEquals(value) - } } pub struct LabelOnFileSetDateCreated(chrono::DateTime); impl From for LabelOnFileSetParam { @@ -23901,16 +20808,16 @@ impl LabelOnFileLabelIdField { LabelOnFileCursor::LabelId(cursor) } pub fn increment(&self, value: i32) -> LabelOnFileSetParam { - LabelOnFileSetParam::LabelId(value) + LabelOnFileSetParam::SetLabelId(value) } pub fn decrement(&self, value: i32) -> LabelOnFileSetParam { - LabelOnFileSetParam::LabelId(value) + LabelOnFileSetParam::SetLabelId(value) } pub fn multiply(&self, value: i32) -> LabelOnFileSetParam { - LabelOnFileSetParam::LabelId(value) + LabelOnFileSetParam::SetLabelId(value) } pub fn divide(&self, value: i32) -> LabelOnFileSetParam { - LabelOnFileSetParam::LabelId(value) + LabelOnFileSetParam::SetLabelId(value) } pub fn in_vec(&self, value: Vec) -> LabelOnFileWhereParam { LabelOnFileWhereParam::LabelIdInVec(value) @@ -23933,18 +20840,6 @@ impl LabelOnFileLabelIdField { pub fn not(&self, value: i32) -> LabelOnFileWhereParam { LabelOnFileWhereParam::LabelIdNot(value) } - pub fn lt(&self, value: i32) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::LabelIdLt(value) - } - pub fn lte(&self, value: i32) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::LabelIdLte(value) - } - pub fn gt(&self, value: i32) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::LabelIdGt(value) - } - pub fn gte(&self, value: i32) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::LabelIdGte(value) - } } pub struct LabelOnFileSetLabelId(i32); impl From for LabelOnFileSetParam { @@ -23985,16 +20880,16 @@ impl LabelOnFileFileIdField { LabelOnFileCursor::FileId(cursor) } pub fn increment(&self, value: i32) -> LabelOnFileSetParam { - LabelOnFileSetParam::FileId(value) + LabelOnFileSetParam::SetFileId(value) } pub fn decrement(&self, value: i32) -> LabelOnFileSetParam { - LabelOnFileSetParam::FileId(value) + LabelOnFileSetParam::SetFileId(value) } pub fn multiply(&self, value: i32) -> LabelOnFileSetParam { - LabelOnFileSetParam::FileId(value) + LabelOnFileSetParam::SetFileId(value) } pub fn divide(&self, value: i32) -> LabelOnFileSetParam { - LabelOnFileSetParam::FileId(value) + LabelOnFileSetParam::SetFileId(value) } pub fn in_vec(&self, value: Vec) -> LabelOnFileWhereParam { LabelOnFileWhereParam::FileIdInVec(value) @@ -24017,18 +20912,6 @@ impl LabelOnFileFileIdField { pub fn not(&self, value: i32) -> LabelOnFileWhereParam { LabelOnFileWhereParam::FileIdNot(value) } - pub fn lt(&self, value: i32) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::FileIdLt(value) - } - pub fn lte(&self, value: i32) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::FileIdLte(value) - } - pub fn gt(&self, value: i32) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::FileIdGt(value) - } - pub fn gte(&self, value: i32) -> LabelOnFileWhereParam { - LabelOnFileWhereParam::FileIdGte(value) - } } pub struct LabelOnFileSetFileId(i32); impl From for LabelOnFileSetParam { @@ -24190,10 +21073,6 @@ pub enum LabelOnFileWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), LabelIdEquals(i32), LabelIdInVec(Vec), LabelIdNotInVec(Vec), @@ -24202,10 +21081,6 @@ pub enum LabelOnFileWhereParam { LabelIdGt(i32), LabelIdGte(i32), LabelIdNot(i32), - LabelIdLt(i32), - LabelIdLte(i32), - LabelIdGt(i32), - LabelIdGte(i32), LabelIs(Vec), FileIdEquals(i32), FileIdInVec(Vec), @@ -24215,10 +21090,6 @@ pub enum LabelOnFileWhereParam { FileIdGt(i32), FileIdGte(i32), FileIdNot(i32), - FileIdLt(i32), - FileIdLte(i32), - FileIdGt(i32), - FileIdGte(i32), FileIs(Vec), } impl LabelOnFileWhereParam { @@ -24335,42 +21206,6 @@ impl LabelOnFileWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::LabelIdEquals(value) => Field { name: "label_id".into(), fields: Some(vec![Field { @@ -24461,42 +21296,6 @@ impl LabelOnFileWhereParam { }]), ..Default::default() }, - Self::LabelIdLt(value) => Field { - name: "label_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LabelIdLte(value) => Field { - name: "label_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LabelIdGt(value) => Field { - name: "label_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LabelIdGte(value) => Field { - name: "label_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::LabelIs(value) => Field { name: "label".into(), fields: Some(vec![Field { @@ -24596,42 +21395,6 @@ impl LabelOnFileWhereParam { }]), ..Default::default() }, - Self::FileIdLt(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdLte(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdGt(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdGte(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FileIs(value) => Field { name: "file".into(), fields: Some(vec![Field { @@ -24768,7 +21531,7 @@ pub struct LabelOnFileFindFirst<'a> { with_params: Vec, } impl<'a> LabelOnFileFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -24827,7 +21590,7 @@ pub struct LabelOnFileFindUnique<'a> { with_params: Vec, } impl<'a> LabelOnFileFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -24960,7 +21723,7 @@ impl<'a> LabelOnFileUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -25244,12 +22007,6 @@ impl JobIdField { pub fn not(&self, value: String) -> JobWhereParam { JobWhereParam::IdNot(value) } - pub fn has_prefix(&self, value: String) -> JobWhereParam { - JobWhereParam::IdHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> JobWhereParam { - JobWhereParam::IdHasSuffix(value) - } } pub struct JobSetId(String); impl From for JobSetParam { @@ -25272,16 +22029,16 @@ impl JobActionField { JobCursor::Action(cursor) } pub fn increment(&self, value: i32) -> JobSetParam { - JobSetParam::Action(value) + JobSetParam::SetAction(value) } pub fn decrement(&self, value: i32) -> JobSetParam { - JobSetParam::Action(value) + JobSetParam::SetAction(value) } pub fn multiply(&self, value: i32) -> JobSetParam { - JobSetParam::Action(value) + JobSetParam::SetAction(value) } pub fn divide(&self, value: i32) -> JobSetParam { - JobSetParam::Action(value) + JobSetParam::SetAction(value) } pub fn in_vec(&self, value: Vec) -> JobWhereParam { JobWhereParam::ActionInVec(value) @@ -25304,18 +22061,6 @@ impl JobActionField { pub fn not(&self, value: i32) -> JobWhereParam { JobWhereParam::ActionNot(value) } - pub fn lt(&self, value: i32) -> JobWhereParam { - JobWhereParam::ActionLt(value) - } - pub fn lte(&self, value: i32) -> JobWhereParam { - JobWhereParam::ActionLte(value) - } - pub fn gt(&self, value: i32) -> JobWhereParam { - JobWhereParam::ActionGt(value) - } - pub fn gte(&self, value: i32) -> JobWhereParam { - JobWhereParam::ActionGte(value) - } } pub struct JobSetAction(i32); impl From for JobSetParam { @@ -25338,16 +22083,16 @@ impl JobStatusField { JobCursor::Status(cursor) } pub fn increment(&self, value: i32) -> JobSetParam { - JobSetParam::Status(value) + JobSetParam::SetStatus(value) } pub fn decrement(&self, value: i32) -> JobSetParam { - JobSetParam::Status(value) + JobSetParam::SetStatus(value) } pub fn multiply(&self, value: i32) -> JobSetParam { - JobSetParam::Status(value) + JobSetParam::SetStatus(value) } pub fn divide(&self, value: i32) -> JobSetParam { - JobSetParam::Status(value) + JobSetParam::SetStatus(value) } pub fn in_vec(&self, value: Vec) -> JobWhereParam { JobWhereParam::StatusInVec(value) @@ -25370,18 +22115,6 @@ impl JobStatusField { pub fn not(&self, value: i32) -> JobWhereParam { JobWhereParam::StatusNot(value) } - pub fn lt(&self, value: i32) -> JobWhereParam { - JobWhereParam::StatusLt(value) - } - pub fn lte(&self, value: i32) -> JobWhereParam { - JobWhereParam::StatusLte(value) - } - pub fn gt(&self, value: i32) -> JobWhereParam { - JobWhereParam::StatusGt(value) - } - pub fn gte(&self, value: i32) -> JobWhereParam { - JobWhereParam::StatusGte(value) - } } pub struct JobSetStatus(i32); impl From for JobSetParam { @@ -25404,16 +22137,16 @@ impl JobTaskCountField { JobCursor::TaskCount(cursor) } pub fn increment(&self, value: i32) -> JobSetParam { - JobSetParam::TaskCount(value) + JobSetParam::SetTaskCount(value) } pub fn decrement(&self, value: i32) -> JobSetParam { - JobSetParam::TaskCount(value) + JobSetParam::SetTaskCount(value) } pub fn multiply(&self, value: i32) -> JobSetParam { - JobSetParam::TaskCount(value) + JobSetParam::SetTaskCount(value) } pub fn divide(&self, value: i32) -> JobSetParam { - JobSetParam::TaskCount(value) + JobSetParam::SetTaskCount(value) } pub fn in_vec(&self, value: Vec) -> JobWhereParam { JobWhereParam::TaskCountInVec(value) @@ -25436,18 +22169,6 @@ impl JobTaskCountField { pub fn not(&self, value: i32) -> JobWhereParam { JobWhereParam::TaskCountNot(value) } - pub fn lt(&self, value: i32) -> JobWhereParam { - JobWhereParam::TaskCountLt(value) - } - pub fn lte(&self, value: i32) -> JobWhereParam { - JobWhereParam::TaskCountLte(value) - } - pub fn gt(&self, value: i32) -> JobWhereParam { - JobWhereParam::TaskCountGt(value) - } - pub fn gte(&self, value: i32) -> JobWhereParam { - JobWhereParam::TaskCountGte(value) - } } pub struct JobSetTaskCount(i32); impl From for JobSetParam { @@ -25470,16 +22191,16 @@ impl JobCompletedTaskCountField { JobCursor::CompletedTaskCount(cursor) } pub fn increment(&self, value: i32) -> JobSetParam { - JobSetParam::CompletedTaskCount(value) + JobSetParam::SetCompletedTaskCount(value) } pub fn decrement(&self, value: i32) -> JobSetParam { - JobSetParam::CompletedTaskCount(value) + JobSetParam::SetCompletedTaskCount(value) } pub fn multiply(&self, value: i32) -> JobSetParam { - JobSetParam::CompletedTaskCount(value) + JobSetParam::SetCompletedTaskCount(value) } pub fn divide(&self, value: i32) -> JobSetParam { - JobSetParam::CompletedTaskCount(value) + JobSetParam::SetCompletedTaskCount(value) } pub fn in_vec(&self, value: Vec) -> JobWhereParam { JobWhereParam::CompletedTaskCountInVec(value) @@ -25502,18 +22223,6 @@ impl JobCompletedTaskCountField { pub fn not(&self, value: i32) -> JobWhereParam { JobWhereParam::CompletedTaskCountNot(value) } - pub fn lt(&self, value: i32) -> JobWhereParam { - JobWhereParam::CompletedTaskCountLt(value) - } - pub fn lte(&self, value: i32) -> JobWhereParam { - JobWhereParam::CompletedTaskCountLte(value) - } - pub fn gt(&self, value: i32) -> JobWhereParam { - JobWhereParam::CompletedTaskCountGt(value) - } - pub fn gte(&self, value: i32) -> JobWhereParam { - JobWhereParam::CompletedTaskCountGte(value) - } } pub struct JobSetCompletedTaskCount(i32); impl From for JobSetParam { @@ -25559,18 +22268,6 @@ impl JobDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> JobWhereParam { JobWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> JobWhereParam { - JobWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> JobWhereParam { - JobWhereParam::DateCreatedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> JobWhereParam { - JobWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> JobWhereParam { - JobWhereParam::DateCreatedAfterEquals(value) - } } pub struct JobSetDateCreated(chrono::DateTime); impl From for JobSetParam { @@ -25616,18 +22313,6 @@ impl JobDateModifiedField { pub fn not(&self, value: chrono::DateTime) -> JobWhereParam { JobWhereParam::DateModifiedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> JobWhereParam { - JobWhereParam::DateModifiedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> JobWhereParam { - JobWhereParam::DateModifiedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> JobWhereParam { - JobWhereParam::DateModifiedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> JobWhereParam { - JobWhereParam::DateModifiedAfterEquals(value) - } } pub struct JobSetDateModified(chrono::DateTime); impl From for JobSetParam { @@ -25650,16 +22335,16 @@ impl JobSecondsElapsedField { JobCursor::SecondsElapsed(cursor) } pub fn increment(&self, value: i32) -> JobSetParam { - JobSetParam::SecondsElapsed(value) + JobSetParam::SetSecondsElapsed(value) } pub fn decrement(&self, value: i32) -> JobSetParam { - JobSetParam::SecondsElapsed(value) + JobSetParam::SetSecondsElapsed(value) } pub fn multiply(&self, value: i32) -> JobSetParam { - JobSetParam::SecondsElapsed(value) + JobSetParam::SetSecondsElapsed(value) } pub fn divide(&self, value: i32) -> JobSetParam { - JobSetParam::SecondsElapsed(value) + JobSetParam::SetSecondsElapsed(value) } pub fn in_vec(&self, value: Vec) -> JobWhereParam { JobWhereParam::SecondsElapsedInVec(value) @@ -25682,18 +22367,6 @@ impl JobSecondsElapsedField { pub fn not(&self, value: i32) -> JobWhereParam { JobWhereParam::SecondsElapsedNot(value) } - pub fn lt(&self, value: i32) -> JobWhereParam { - JobWhereParam::SecondsElapsedLt(value) - } - pub fn lte(&self, value: i32) -> JobWhereParam { - JobWhereParam::SecondsElapsedLte(value) - } - pub fn gt(&self, value: i32) -> JobWhereParam { - JobWhereParam::SecondsElapsedGt(value) - } - pub fn gte(&self, value: i32) -> JobWhereParam { - JobWhereParam::SecondsElapsedGte(value) - } } pub struct JobSetSecondsElapsed(i32); impl From for JobSetParam { @@ -25890,8 +22563,6 @@ pub enum JobWhereParam { IdStartsWith(String), IdEndsWith(String), IdNot(String), - IdHasPrefix(String), - IdHasSuffix(String), ActionEquals(i32), ActionInVec(Vec), ActionNotInVec(Vec), @@ -25900,10 +22571,6 @@ pub enum JobWhereParam { ActionGt(i32), ActionGte(i32), ActionNot(i32), - ActionLt(i32), - ActionLte(i32), - ActionGt(i32), - ActionGte(i32), StatusEquals(i32), StatusInVec(Vec), StatusNotInVec(Vec), @@ -25912,10 +22579,6 @@ pub enum JobWhereParam { StatusGt(i32), StatusGte(i32), StatusNot(i32), - StatusLt(i32), - StatusLte(i32), - StatusGt(i32), - StatusGte(i32), TaskCountEquals(i32), TaskCountInVec(Vec), TaskCountNotInVec(Vec), @@ -25924,10 +22587,6 @@ pub enum JobWhereParam { TaskCountGt(i32), TaskCountGte(i32), TaskCountNot(i32), - TaskCountLt(i32), - TaskCountLte(i32), - TaskCountGt(i32), - TaskCountGte(i32), CompletedTaskCountEquals(i32), CompletedTaskCountInVec(Vec), CompletedTaskCountNotInVec(Vec), @@ -25936,10 +22595,6 @@ pub enum JobWhereParam { CompletedTaskCountGt(i32), CompletedTaskCountGte(i32), CompletedTaskCountNot(i32), - CompletedTaskCountLt(i32), - CompletedTaskCountLte(i32), - CompletedTaskCountGt(i32), - CompletedTaskCountGte(i32), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -25948,10 +22603,6 @@ pub enum JobWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), DateModifiedEquals(chrono::DateTime), DateModifiedInVec(Vec>), DateModifiedNotInVec(Vec>), @@ -25960,10 +22611,6 @@ pub enum JobWhereParam { DateModifiedGt(chrono::DateTime), DateModifiedGte(chrono::DateTime), DateModifiedNot(chrono::DateTime), - DateModifiedBefore(chrono::DateTime), - DateModifiedAfter(chrono::DateTime), - DateModifiedBeforeEquals(chrono::DateTime), - DateModifiedAfterEquals(chrono::DateTime), SecondsElapsedEquals(i32), SecondsElapsedInVec(Vec), SecondsElapsedNotInVec(Vec), @@ -25972,10 +22619,6 @@ pub enum JobWhereParam { SecondsElapsedGt(i32), SecondsElapsedGte(i32), SecondsElapsedNot(i32), - SecondsElapsedLt(i32), - SecondsElapsedLte(i32), - SecondsElapsedGt(i32), - SecondsElapsedGte(i32), } impl JobWhereParam { pub fn to_field(&self) -> Field { @@ -26118,24 +22761,6 @@ impl JobWhereParam { }]), ..Default::default() }, - Self::IdHasPrefix(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdHasSuffix(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::ActionEquals(value) => Field { name: "action".into(), fields: Some(vec![Field { @@ -26226,42 +22851,6 @@ impl JobWhereParam { }]), ..Default::default() }, - Self::ActionLt(value) => Field { - name: "action".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ActionLte(value) => Field { - name: "action".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ActionGt(value) => Field { - name: "action".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ActionGte(value) => Field { - name: "action".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::StatusEquals(value) => Field { name: "status".into(), fields: Some(vec![Field { @@ -26352,42 +22941,6 @@ impl JobWhereParam { }]), ..Default::default() }, - Self::StatusLt(value) => Field { - name: "status".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::StatusLte(value) => Field { - name: "status".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::StatusGt(value) => Field { - name: "status".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::StatusGte(value) => Field { - name: "status".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::TaskCountEquals(value) => Field { name: "task_count".into(), fields: Some(vec![Field { @@ -26478,42 +23031,6 @@ impl JobWhereParam { }]), ..Default::default() }, - Self::TaskCountLt(value) => Field { - name: "task_count".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TaskCountLte(value) => Field { - name: "task_count".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TaskCountGt(value) => Field { - name: "task_count".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::TaskCountGte(value) => Field { - name: "task_count".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::CompletedTaskCountEquals(value) => Field { name: "completed_task_count".into(), fields: Some(vec![Field { @@ -26604,42 +23121,6 @@ impl JobWhereParam { }]), ..Default::default() }, - Self::CompletedTaskCountLt(value) => Field { - name: "completed_task_count".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::CompletedTaskCountLte(value) => Field { - name: "completed_task_count".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::CompletedTaskCountGt(value) => Field { - name: "completed_task_count".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::CompletedTaskCountGte(value) => Field { - name: "completed_task_count".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -26730,42 +23211,6 @@ impl JobWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateModifiedEquals(value) => Field { name: "date_modified".into(), fields: Some(vec![Field { @@ -26856,42 +23301,6 @@ impl JobWhereParam { }]), ..Default::default() }, - Self::DateModifiedBefore(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfter(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedBeforeEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfterEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::SecondsElapsedEquals(value) => Field { name: "seconds_elapsed".into(), fields: Some(vec![Field { @@ -26982,42 +23391,6 @@ impl JobWhereParam { }]), ..Default::default() }, - Self::SecondsElapsedLt(value) => Field { - name: "seconds_elapsed".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::SecondsElapsedLte(value) => Field { - name: "seconds_elapsed".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::SecondsElapsedGt(value) => Field { - name: "seconds_elapsed".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::SecondsElapsedGte(value) => Field { - name: "seconds_elapsed".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, } } } @@ -27146,7 +23519,7 @@ pub struct JobFindFirst<'a> { with_params: Vec, } impl<'a> JobFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -27205,7 +23578,7 @@ pub struct JobFindUnique<'a> { with_params: Vec, } impl<'a> JobFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -27335,7 +23708,7 @@ impl<'a> JobUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -27584,16 +23957,16 @@ impl SpaceIdField { SpaceCursor::Id(cursor) } pub fn increment(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::Id(value) + SpaceSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::Id(value) + SpaceSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::Id(value) + SpaceSetParam::SetId(value) } pub fn divide(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::Id(value) + SpaceSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> SpaceWhereParam { SpaceWhereParam::IdInVec(value) @@ -27616,18 +23989,6 @@ impl SpaceIdField { pub fn not(&self, value: i32) -> SpaceWhereParam { SpaceWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::IdGte(value) - } } pub struct SpaceSetId(i32); impl From for SpaceSetParam { @@ -27679,12 +24040,6 @@ impl SpaceNameField { pub fn not(&self, value: String) -> SpaceWhereParam { SpaceWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> SpaceWhereParam { - SpaceWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> SpaceWhereParam { - SpaceWhereParam::NameHasSuffix(value) - } } pub struct SpaceSetName(String); impl From for SpaceSetParam { @@ -27707,16 +24062,16 @@ impl SpaceEncryptionField { SpaceCursor::Encryption(cursor) } pub fn increment(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::Encryption(value) + SpaceSetParam::SetEncryption(value) } pub fn decrement(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::Encryption(value) + SpaceSetParam::SetEncryption(value) } pub fn multiply(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::Encryption(value) + SpaceSetParam::SetEncryption(value) } pub fn divide(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::Encryption(value) + SpaceSetParam::SetEncryption(value) } pub fn in_vec(&self, value: Vec) -> SpaceWhereParam { SpaceWhereParam::EncryptionInVec(value) @@ -27739,18 +24094,6 @@ impl SpaceEncryptionField { pub fn not(&self, value: i32) -> SpaceWhereParam { SpaceWhereParam::EncryptionNot(value) } - pub fn lt(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::EncryptionLt(value) - } - pub fn lte(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::EncryptionLte(value) - } - pub fn gt(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::EncryptionGt(value) - } - pub fn gte(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::EncryptionGte(value) - } } pub struct SpaceSetEncryption(i32); impl From for SpaceSetParam { @@ -27799,18 +24142,6 @@ impl SpaceDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> SpaceWhereParam { SpaceWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> SpaceWhereParam { - SpaceWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> SpaceWhereParam { - SpaceWhereParam::DateCreatedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> SpaceWhereParam { - SpaceWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> SpaceWhereParam { - SpaceWhereParam::DateCreatedAfterEquals(value) - } } pub struct SpaceSetDateCreated(chrono::DateTime); impl From for SpaceSetParam { @@ -27859,18 +24190,6 @@ impl SpaceDateModifiedField { pub fn not(&self, value: chrono::DateTime) -> SpaceWhereParam { SpaceWhereParam::DateModifiedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> SpaceWhereParam { - SpaceWhereParam::DateModifiedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> SpaceWhereParam { - SpaceWhereParam::DateModifiedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> SpaceWhereParam { - SpaceWhereParam::DateModifiedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> SpaceWhereParam { - SpaceWhereParam::DateModifiedAfterEquals(value) - } } pub struct SpaceSetDateModified(chrono::DateTime); impl From for SpaceSetParam { @@ -27914,16 +24233,16 @@ impl SpaceLibraryIdField { SpaceCursor::LibraryId(cursor) } pub fn increment(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::LibraryId(value) + SpaceSetParam::SetLibraryId(value) } pub fn decrement(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::LibraryId(value) + SpaceSetParam::SetLibraryId(value) } pub fn multiply(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::LibraryId(value) + SpaceSetParam::SetLibraryId(value) } pub fn divide(&self, value: i32) -> SpaceSetParam { - SpaceSetParam::LibraryId(value) + SpaceSetParam::SetLibraryId(value) } pub fn in_vec(&self, value: Vec) -> SpaceWhereParam { SpaceWhereParam::LibraryIdInVec(value) @@ -27946,18 +24265,6 @@ impl SpaceLibraryIdField { pub fn not(&self, value: i32) -> SpaceWhereParam { SpaceWhereParam::LibraryIdNot(value) } - pub fn lt(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::LibraryIdLt(value) - } - pub fn lte(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::LibraryIdLte(value) - } - pub fn gt(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::LibraryIdGt(value) - } - pub fn gte(&self, value: i32) -> SpaceWhereParam { - SpaceWhereParam::LibraryIdGte(value) - } } pub struct SpaceSetLibraryId(i32); impl From for SpaceSetParam { @@ -28145,10 +24452,6 @@ pub enum SpaceWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -28160,8 +24463,6 @@ pub enum SpaceWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), EncryptionEquals(i32), EncryptionInVec(Vec), EncryptionNotInVec(Vec), @@ -28170,10 +24471,6 @@ pub enum SpaceWhereParam { EncryptionGt(i32), EncryptionGte(i32), EncryptionNot(i32), - EncryptionLt(i32), - EncryptionLte(i32), - EncryptionGt(i32), - EncryptionGte(i32), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -28182,10 +24479,6 @@ pub enum SpaceWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), DateModifiedEquals(chrono::DateTime), DateModifiedInVec(Vec>), DateModifiedNotInVec(Vec>), @@ -28194,10 +24487,6 @@ pub enum SpaceWhereParam { DateModifiedGt(chrono::DateTime), DateModifiedGte(chrono::DateTime), DateModifiedNot(chrono::DateTime), - DateModifiedBefore(chrono::DateTime), - DateModifiedAfter(chrono::DateTime), - DateModifiedBeforeEquals(chrono::DateTime), - DateModifiedAfterEquals(chrono::DateTime), LibraryIs(Vec), LibraryIdEquals(i32), LibraryIdInVec(Vec), @@ -28207,10 +24496,6 @@ pub enum SpaceWhereParam { LibraryIdGt(i32), LibraryIdGte(i32), LibraryIdNot(i32), - LibraryIdLt(i32), - LibraryIdLte(i32), - LibraryIdGt(i32), - LibraryIdGte(i32), } impl SpaceWhereParam { pub fn to_field(&self) -> Field { @@ -28326,42 +24611,6 @@ impl SpaceWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -28479,24 +24728,6 @@ impl SpaceWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::EncryptionEquals(value) => Field { name: "encryption".into(), fields: Some(vec![Field { @@ -28587,42 +24818,6 @@ impl SpaceWhereParam { }]), ..Default::default() }, - Self::EncryptionLt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionLte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGt(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::EncryptionGte(value) => Field { - name: "encryption".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -28713,42 +24908,6 @@ impl SpaceWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateModifiedEquals(value) => Field { name: "date_modified".into(), fields: Some(vec![Field { @@ -28839,42 +24998,6 @@ impl SpaceWhereParam { }]), ..Default::default() }, - Self::DateModifiedBefore(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfter(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedBeforeEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfterEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::LibraryIs(value) => Field { name: "Library".into(), fields: Some(vec![Field { @@ -28974,42 +25097,6 @@ impl SpaceWhereParam { }]), ..Default::default() }, - Self::LibraryIdLt(value) => Field { - name: "libraryId".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LibraryIdLte(value) => Field { - name: "libraryId".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LibraryIdGt(value) => Field { - name: "libraryId".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::LibraryIdGte(value) => Field { - name: "libraryId".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, } } } @@ -29138,7 +25225,7 @@ pub struct SpaceFindFirst<'a> { with_params: Vec, } impl<'a> SpaceFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -29197,7 +25284,7 @@ pub struct SpaceFindUnique<'a> { with_params: Vec, } impl<'a> SpaceFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -29321,7 +25408,7 @@ impl<'a> SpaceUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -29553,16 +25640,16 @@ impl AlbumIdField { AlbumCursor::Id(cursor) } pub fn increment(&self, value: i32) -> AlbumSetParam { - AlbumSetParam::Id(value) + AlbumSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> AlbumSetParam { - AlbumSetParam::Id(value) + AlbumSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> AlbumSetParam { - AlbumSetParam::Id(value) + AlbumSetParam::SetId(value) } pub fn divide(&self, value: i32) -> AlbumSetParam { - AlbumSetParam::Id(value) + AlbumSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> AlbumWhereParam { AlbumWhereParam::IdInVec(value) @@ -29585,18 +25672,6 @@ impl AlbumIdField { pub fn not(&self, value: i32) -> AlbumWhereParam { AlbumWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> AlbumWhereParam { - AlbumWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> AlbumWhereParam { - AlbumWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> AlbumWhereParam { - AlbumWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> AlbumWhereParam { - AlbumWhereParam::IdGte(value) - } } pub struct AlbumSetId(i32); impl From for AlbumSetParam { @@ -29648,12 +25723,6 @@ impl AlbumNameField { pub fn not(&self, value: String) -> AlbumWhereParam { AlbumWhereParam::NameNot(value) } - pub fn has_prefix(&self, value: String) -> AlbumWhereParam { - AlbumWhereParam::NameHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> AlbumWhereParam { - AlbumWhereParam::NameHasSuffix(value) - } } pub struct AlbumSetName(String); impl From for AlbumSetParam { @@ -29723,18 +25792,6 @@ impl AlbumDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> AlbumWhereParam { AlbumWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> AlbumWhereParam { - AlbumWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> AlbumWhereParam { - AlbumWhereParam::DateCreatedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> AlbumWhereParam { - AlbumWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> AlbumWhereParam { - AlbumWhereParam::DateCreatedAfterEquals(value) - } } pub struct AlbumSetDateCreated(chrono::DateTime); impl From for AlbumSetParam { @@ -29783,18 +25840,6 @@ impl AlbumDateModifiedField { pub fn not(&self, value: chrono::DateTime) -> AlbumWhereParam { AlbumWhereParam::DateModifiedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> AlbumWhereParam { - AlbumWhereParam::DateModifiedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> AlbumWhereParam { - AlbumWhereParam::DateModifiedAfter(value) - } - pub fn before_equals(&self, value: chrono::DateTime) -> AlbumWhereParam { - AlbumWhereParam::DateModifiedBeforeEquals(value) - } - pub fn after_equals(&self, value: chrono::DateTime) -> AlbumWhereParam { - AlbumWhereParam::DateModifiedAfterEquals(value) - } } pub struct AlbumSetDateModified(chrono::DateTime); impl From for AlbumSetParam { @@ -29934,10 +25979,6 @@ pub enum AlbumWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), NameEquals(String), NameInVec(Vec), NameNotInVec(Vec), @@ -29949,8 +25990,6 @@ pub enum AlbumWhereParam { NameStartsWith(String), NameEndsWith(String), NameNot(String), - NameHasPrefix(String), - NameHasSuffix(String), IsHiddenEquals(bool), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), @@ -29960,10 +25999,6 @@ pub enum AlbumWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), DateModifiedEquals(chrono::DateTime), DateModifiedInVec(Vec>), DateModifiedNotInVec(Vec>), @@ -29972,10 +26007,6 @@ pub enum AlbumWhereParam { DateModifiedGt(chrono::DateTime), DateModifiedGte(chrono::DateTime), DateModifiedNot(chrono::DateTime), - DateModifiedBefore(chrono::DateTime), - DateModifiedAfter(chrono::DateTime), - DateModifiedBeforeEquals(chrono::DateTime), - DateModifiedAfterEquals(chrono::DateTime), } impl AlbumWhereParam { pub fn to_field(&self) -> Field { @@ -30091,42 +26122,6 @@ impl AlbumWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::NameEquals(value) => Field { name: "name".into(), fields: Some(vec![Field { @@ -30244,24 +26239,6 @@ impl AlbumWhereParam { }]), ..Default::default() }, - Self::NameHasPrefix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::NameHasSuffix(value) => Field { - name: "name".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::IsHiddenEquals(value) => Field { name: "is_hidden".into(), fields: Some(vec![Field { @@ -30361,42 +26338,6 @@ impl AlbumWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateModifiedEquals(value) => Field { name: "date_modified".into(), fields: Some(vec![Field { @@ -30487,42 +26428,6 @@ impl AlbumWhereParam { }]), ..Default::default() }, - Self::DateModifiedBefore(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfter(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedBeforeEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfterEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, } } } @@ -30651,7 +26556,7 @@ pub struct AlbumFindFirst<'a> { with_params: Vec, } impl<'a> AlbumFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -30710,7 +26615,7 @@ pub struct AlbumFindUnique<'a> { with_params: Vec, } impl<'a> AlbumFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -30834,7 +26739,7 @@ impl<'a> AlbumUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -31081,16 +26986,16 @@ impl CommentIdField { CommentCursor::Id(cursor) } pub fn increment(&self, value: i32) -> CommentSetParam { - CommentSetParam::Id(value) + CommentSetParam::SetId(value) } pub fn decrement(&self, value: i32) -> CommentSetParam { - CommentSetParam::Id(value) + CommentSetParam::SetId(value) } pub fn multiply(&self, value: i32) -> CommentSetParam { - CommentSetParam::Id(value) + CommentSetParam::SetId(value) } pub fn divide(&self, value: i32) -> CommentSetParam { - CommentSetParam::Id(value) + CommentSetParam::SetId(value) } pub fn in_vec(&self, value: Vec) -> CommentWhereParam { CommentWhereParam::IdInVec(value) @@ -31113,18 +27018,6 @@ impl CommentIdField { pub fn not(&self, value: i32) -> CommentWhereParam { CommentWhereParam::IdNot(value) } - pub fn lt(&self, value: i32) -> CommentWhereParam { - CommentWhereParam::IdLt(value) - } - pub fn lte(&self, value: i32) -> CommentWhereParam { - CommentWhereParam::IdLte(value) - } - pub fn gt(&self, value: i32) -> CommentWhereParam { - CommentWhereParam::IdGt(value) - } - pub fn gte(&self, value: i32) -> CommentWhereParam { - CommentWhereParam::IdGte(value) - } } pub struct CommentSetId(i32); impl From for CommentSetParam { @@ -31176,12 +27069,6 @@ impl CommentContentField { pub fn not(&self, value: String) -> CommentWhereParam { CommentWhereParam::ContentNot(value) } - pub fn has_prefix(&self, value: String) -> CommentWhereParam { - CommentWhereParam::ContentHasPrefix(value) - } - pub fn has_suffix(&self, value: String) -> CommentWhereParam { - CommentWhereParam::ContentHasSuffix(value) - } } pub struct CommentSetContent(String); impl From for CommentSetParam { @@ -31230,24 +27117,6 @@ impl CommentDateCreatedField { pub fn not(&self, value: chrono::DateTime) -> CommentWhereParam { CommentWhereParam::DateCreatedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> CommentWhereParam { - CommentWhereParam::DateCreatedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> CommentWhereParam { - CommentWhereParam::DateCreatedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> CommentWhereParam { - CommentWhereParam::DateCreatedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> CommentWhereParam { - CommentWhereParam::DateCreatedAfterEquals(value) - } } pub struct CommentSetDateCreated(chrono::DateTime); impl From for CommentSetParam { @@ -31296,24 +27165,6 @@ impl CommentDateModifiedField { pub fn not(&self, value: chrono::DateTime) -> CommentWhereParam { CommentWhereParam::DateModifiedNot(value) } - pub fn before(&self, value: chrono::DateTime) -> CommentWhereParam { - CommentWhereParam::DateModifiedBefore(value) - } - pub fn after(&self, value: chrono::DateTime) -> CommentWhereParam { - CommentWhereParam::DateModifiedAfter(value) - } - pub fn before_equals( - &self, - value: chrono::DateTime, - ) -> CommentWhereParam { - CommentWhereParam::DateModifiedBeforeEquals(value) - } - pub fn after_equals( - &self, - value: chrono::DateTime, - ) -> CommentWhereParam { - CommentWhereParam::DateModifiedAfterEquals(value) - } } pub struct CommentSetDateModified(chrono::DateTime); impl From for CommentSetParam { @@ -31336,16 +27187,16 @@ impl CommentFileIdField { CommentCursor::FileId(cursor) } pub fn increment(&self, value: i32) -> CommentSetParam { - CommentSetParam::FileId(value) + CommentSetParam::SetFileId(value) } pub fn decrement(&self, value: i32) -> CommentSetParam { - CommentSetParam::FileId(value) + CommentSetParam::SetFileId(value) } pub fn multiply(&self, value: i32) -> CommentSetParam { - CommentSetParam::FileId(value) + CommentSetParam::SetFileId(value) } pub fn divide(&self, value: i32) -> CommentSetParam { - CommentSetParam::FileId(value) + CommentSetParam::SetFileId(value) } pub fn in_vec(&self, value: Vec) -> CommentWhereParam { CommentWhereParam::FileIdInVec(value) @@ -31368,18 +27219,6 @@ impl CommentFileIdField { pub fn not(&self, value: i32) -> CommentWhereParam { CommentWhereParam::FileIdNot(value) } - pub fn lt(&self, value: i32) -> CommentWhereParam { - CommentWhereParam::FileIdLt(value) - } - pub fn lte(&self, value: i32) -> CommentWhereParam { - CommentWhereParam::FileIdLte(value) - } - pub fn gt(&self, value: i32) -> CommentWhereParam { - CommentWhereParam::FileIdGt(value) - } - pub fn gte(&self, value: i32) -> CommentWhereParam { - CommentWhereParam::FileIdGte(value) - } } pub struct CommentSetFileId(i32); impl From for CommentSetParam { @@ -31571,10 +27410,6 @@ pub enum CommentWhereParam { IdGt(i32), IdGte(i32), IdNot(i32), - IdLt(i32), - IdLte(i32), - IdGt(i32), - IdGte(i32), ContentEquals(String), ContentInVec(Vec), ContentNotInVec(Vec), @@ -31586,8 +27421,6 @@ pub enum CommentWhereParam { ContentStartsWith(String), ContentEndsWith(String), ContentNot(String), - ContentHasPrefix(String), - ContentHasSuffix(String), DateCreatedEquals(chrono::DateTime), DateCreatedInVec(Vec>), DateCreatedNotInVec(Vec>), @@ -31596,10 +27429,6 @@ pub enum CommentWhereParam { DateCreatedGt(chrono::DateTime), DateCreatedGte(chrono::DateTime), DateCreatedNot(chrono::DateTime), - DateCreatedBefore(chrono::DateTime), - DateCreatedAfter(chrono::DateTime), - DateCreatedBeforeEquals(chrono::DateTime), - DateCreatedAfterEquals(chrono::DateTime), DateModifiedEquals(chrono::DateTime), DateModifiedInVec(Vec>), DateModifiedNotInVec(Vec>), @@ -31608,10 +27437,6 @@ pub enum CommentWhereParam { DateModifiedGt(chrono::DateTime), DateModifiedGte(chrono::DateTime), DateModifiedNot(chrono::DateTime), - DateModifiedBefore(chrono::DateTime), - DateModifiedAfter(chrono::DateTime), - DateModifiedBeforeEquals(chrono::DateTime), - DateModifiedAfterEquals(chrono::DateTime), FileIdEquals(i32), FileIdInVec(Vec), FileIdNotInVec(Vec), @@ -31620,10 +27445,6 @@ pub enum CommentWhereParam { FileIdGt(i32), FileIdGte(i32), FileIdNot(i32), - FileIdLt(i32), - FileIdLte(i32), - FileIdGt(i32), - FileIdGte(i32), FileIs(Vec), } impl CommentWhereParam { @@ -31740,42 +27561,6 @@ impl CommentWhereParam { }]), ..Default::default() }, - Self::IdLt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdLte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGt(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::IdGte(value) => Field { - name: "id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::ContentEquals(value) => Field { name: "content".into(), fields: Some(vec![Field { @@ -31893,24 +27678,6 @@ impl CommentWhereParam { }]), ..Default::default() }, - Self::ContentHasPrefix(value) => Field { - name: "content".into(), - fields: Some(vec![Field { - name: "starts_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::ContentHasSuffix(value) => Field { - name: "content".into(), - fields: Some(vec![Field { - name: "ends_with".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateCreatedEquals(value) => Field { name: "date_created".into(), fields: Some(vec![Field { @@ -32001,42 +27768,6 @@ impl CommentWhereParam { }]), ..Default::default() }, - Self::DateCreatedBefore(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfter(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedBeforeEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateCreatedAfterEquals(value) => Field { - name: "date_created".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::DateModifiedEquals(value) => Field { name: "date_modified".into(), fields: Some(vec![Field { @@ -32127,42 +27858,6 @@ impl CommentWhereParam { }]), ..Default::default() }, - Self::DateModifiedBefore(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfter(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedBeforeEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::DateModifiedAfterEquals(value) => Field { - name: "date_modified".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FileIdEquals(value) => Field { name: "file_id".into(), fields: Some(vec![Field { @@ -32253,42 +27948,6 @@ impl CommentWhereParam { }]), ..Default::default() }, - Self::FileIdLt(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "lt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdLte(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "lte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdGt(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "gt".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, - Self::FileIdGte(value) => Field { - name: "file_id".into(), - fields: Some(vec![Field { - name: "gte".into(), - value: Some(serde_json::to_value(value).unwrap()), - ..Default::default() - }]), - ..Default::default() - }, Self::FileIs(value) => Field { name: "file".into(), fields: Some(vec![Field { @@ -32426,7 +28085,7 @@ pub struct CommentFindFirst<'a> { with_params: Vec, } impl<'a> CommentFindFirst<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, order_by_params, @@ -32485,7 +28144,7 @@ pub struct CommentFindUnique<'a> { with_params: Vec, } impl<'a> CommentFindUnique<'a> { - pub async fn exec(self) -> QueryResult { + pub async fn exec(self) -> QueryResult> { let Self { mut query, with_params, @@ -32613,7 +28272,7 @@ impl<'a> CommentUpsertOne<'a> { }); self } - pub fn update(mut self, params: Vec) -> Self { + pub fn update(mut self, params: Vec) -> Self { self.query.inputs.push(Input { name: "update".into(), fields: params @@ -32790,7 +28449,7 @@ impl<'a> CommentActions<'a> { } } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum MigrationScalarFieldEnum { +pub enum MigrationScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "name")] @@ -32803,7 +28462,7 @@ enum MigrationScalarFieldEnum { AppliedAt, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum LibraryScalarFieldEnum { +pub enum LibraryScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "uuid")] @@ -32822,7 +28481,7 @@ enum LibraryScalarFieldEnum { Timezone, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum LibraryStatisticsScalarFieldEnum { +pub enum LibraryStatisticsScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "date_captured")] @@ -32839,7 +28498,7 @@ enum LibraryStatisticsScalarFieldEnum { TotalUniqueBytes, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum ClientScalarFieldEnum { +pub enum ClientScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "uuid")] @@ -32860,7 +28519,7 @@ enum ClientScalarFieldEnum { DateCreated, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum LocationScalarFieldEnum { +pub enum LocationScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "name")] @@ -32887,7 +28546,7 @@ enum LocationScalarFieldEnum { DateCreated, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum FileScalarFieldEnum { +pub enum FileScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "kind")] @@ -32910,7 +28569,7 @@ enum FileScalarFieldEnum { DateIndexed, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum FilePathScalarFieldEnum { +pub enum FilePathScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "is_dir")] @@ -32939,7 +28598,7 @@ enum FilePathScalarFieldEnum { DateIndexed, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum TagScalarFieldEnum { +pub enum TagScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "name")] @@ -32956,7 +28615,7 @@ enum TagScalarFieldEnum { DateModified, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum TagOnFileScalarFieldEnum { +pub enum TagOnFileScalarFieldEnum { #[serde(rename = "date_created")] DateCreated, #[serde(rename = "tag_id")] @@ -32965,7 +28624,7 @@ enum TagOnFileScalarFieldEnum { FileId, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum LabelScalarFieldEnum { +pub enum LabelScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "name")] @@ -32976,7 +28635,7 @@ enum LabelScalarFieldEnum { DateModified, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum LabelOnFileScalarFieldEnum { +pub enum LabelOnFileScalarFieldEnum { #[serde(rename = "date_created")] DateCreated, #[serde(rename = "label_id")] @@ -32985,7 +28644,7 @@ enum LabelOnFileScalarFieldEnum { FileId, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum JobScalarFieldEnum { +pub enum JobScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "action")] @@ -33004,7 +28663,7 @@ enum JobScalarFieldEnum { SecondsElapsed, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum SpaceScalarFieldEnum { +pub enum SpaceScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "name")] @@ -33019,7 +28678,7 @@ enum SpaceScalarFieldEnum { LibraryId, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum AlbumScalarFieldEnum { +pub enum AlbumScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "name")] @@ -33032,7 +28691,7 @@ enum AlbumScalarFieldEnum { DateModified, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum CommentScalarFieldEnum { +pub enum CommentScalarFieldEnum { #[serde(rename = "id")] Id, #[serde(rename = "content")] @@ -33045,7 +28704,7 @@ enum CommentScalarFieldEnum { FileId, } #[derive(Debug, Clone, Copy, Serialize, Deserialize)] -enum SortOrder { +pub enum SortOrder { #[serde(rename = "asc")] Asc, #[serde(rename = "desc")] diff --git a/packages/core/src/sys/locations.rs b/packages/core/src/sys/locations.rs index ef3fbb9ac..71ff0cbdb 100644 --- a/packages/core/src/sys/locations.rs +++ b/packages/core/src/sys/locations.rs @@ -1,11 +1,9 @@ use crate::{ - db, file::indexer::IndexerJob, - job, - prisma::{File, FilePath, Location}, + prisma::{FilePath, Location}, state::client, sys::{volumes, volumes::Volume}, - Core, CoreContext, + CoreContext, }; use anyhow::Result; use log::info; @@ -21,11 +19,11 @@ use super::SysError; #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[ts(export)] pub struct LocationResource { - pub id: i64, + pub id: i32, pub name: Option, pub path: Option, - pub total_capacity: Option, - pub available_capacity: Option, + pub total_capacity: Option, + pub available_capacity: Option, pub is_removable: bool, pub is_ejectable: bool, pub is_root_filesystem: bool, @@ -63,15 +61,19 @@ static DOTFILE_NAME: &str = ".spacedrive"; // - accessible on from the local filesystem // - already exists in the database pub async fn check_location(path: &str) -> Result { - let dotfile: DotSpacedrive = match fs::File::open(format!("{}/{}", path.clone(), DOTFILE_NAME)) { - Ok(file) => serde_json::from_reader(file).unwrap_or(DotSpacedrive::default()), - Err(e) => return Err(LocationError::DotfileReadFailure(e)), - }; + let dotfile: DotSpacedrive = + match fs::File::open(format!("{}/{}", path.clone(), DOTFILE_NAME)) { + Ok(file) => serde_json::from_reader(file).unwrap_or(DotSpacedrive::default()), + Err(e) => return Err(LocationError::DotfileReadFailure(e)), + }; Ok(dotfile) } -pub async fn get_location(ctx: &CoreContext, location_id: i64) -> Result { +pub async fn get_location( + ctx: &CoreContext, + location_id: i32, +) -> Result { let db = &ctx.database; // get location by location_id from db and include location_paths @@ -81,7 +83,7 @@ pub async fn get_location(ctx: &CoreContext, location_id: i64) -> Result location, None => Err(LocationError::NotFound(location_id.to_string()))?, @@ -92,15 +94,23 @@ pub async fn get_location(ctx: &CoreContext, location_id: i64) -> Result Result { +pub async fn new_location_and_scan( + ctx: &CoreContext, + path: &str, +) -> Result { let location = create_location(&ctx, path).await?; - ctx.spawn_job(Box::new(IndexerJob { path: path.to_string() })); + ctx.spawn_job(Box::new(IndexerJob { + path: path.to_string(), + })); Ok(location) } -pub async fn create_location(ctx: &CoreContext, path: &str) -> Result { +pub async fn create_location( + ctx: &CoreContext, + path: &str, +) -> Result { let db = &ctx.database; let config = client::get(); @@ -114,11 +124,14 @@ pub async fn create_location(ctx: &CoreContext, path: &str) -> Result location, None => { - info!("Location does not exist, creating new location for '{}'", &path); + info!( + "Location does not exist, creating new location for '{}'", + &path + ); let uuid = uuid::Uuid::new_v4(); // create new location let create_location_params = { @@ -128,7 +141,9 @@ pub async fn create_location(ctx: &CoreContext, path: &str) -> Result mount, @@ -137,8 +152,9 @@ pub async fn create_location(ctx: &CoreContext, path: &str) -> Result Result file, - Err(e) => Err(LocationError::DotfileWriteFailure(e, path.to_string()))?, - }; + let mut dotfile = + match fs::File::create(format!("{}/{}", path.clone(), DOTFILE_NAME)) { + Ok(file) => file, + Err(e) => { + Err(LocationError::DotfileWriteFailure(e, path.to_string()))? + }, + }; let data = DotSpacedrive { location_uuid: uuid.to_string(), @@ -164,7 +187,9 @@ pub async fn create_location(ctx: &CoreContext, path: &str) -> Result json, - Err(e) => Err(LocationError::DotfileSerializeFailure(e, path.to_string()))?, + Err(e) => { + Err(LocationError::DotfileSerializeFailure(e, path.to_string()))? + }, }; match dotfile.write_all(json.as_bytes()) { diff --git a/packages/core/src/sys/mod.rs b/packages/core/src/sys/mod.rs index 7d484b98f..f3f670499 100644 --- a/packages/core/src/sys/mod.rs +++ b/packages/core/src/sys/mod.rs @@ -2,7 +2,7 @@ pub mod locations; pub mod volumes; use thiserror::Error; -use crate::{db, job}; +use crate::{job, prisma}; use self::locations::LocationError; @@ -15,5 +15,5 @@ pub enum SysError { #[error("Error from job runner")] JobError(#[from] job::JobError), #[error("Database error")] - DatabaseError(#[from] db::DatabaseError), + DatabaseError(#[from] prisma::QueryError), } diff --git a/packages/core/src/sys/volumes.rs b/packages/core/src/sys/volumes.rs index 1b22d132e..2167d47e2 100644 --- a/packages/core/src/sys/volumes.rs +++ b/packages/core/src/sys/volumes.rs @@ -34,7 +34,8 @@ pub fn get_volumes() -> Result, SysError> { let mut name = disk.name().to_str().unwrap_or("Volume").to_string(); let is_removable = disk.is_removable(); - let file_system = String::from_utf8(disk.file_system().to_vec()).unwrap_or_else(|_| "Err".to_string()); + let file_system = String::from_utf8(disk.file_system().to_vec()) + .unwrap_or_else(|_| "Err".to_string()); let disk_type = match disk.type_() { sysinfo::DiskType::SSD => "SSD".to_string(), @@ -50,11 +51,16 @@ pub fn get_volumes() -> Result, SysError> { let mut caption = mount_point.clone(); caption.pop(); let wmic_process = Command::new("cmd") - .args(["/C", &format!("wmic logical disk where Caption='{caption}' get Size")]) + .args([ + "/C", + &format!("wmic logical disk where Caption='{caption}' get Size"), + ]) .output() .expect("failed to execute process"); let wmic_process_output = String::from_utf8(wmic_process.stdout).unwrap(); - let parsed_size = wmic_process_output.split("\r\r\n").collect::>()[1].to_string(); + let parsed_size = + wmic_process_output.split("\r\r\n").collect::>()[1] + .to_string(); if let Ok(n) = parsed_size.trim().parse::() { total_space = n; diff --git a/packages/core/src/util/time.rs b/packages/core/src/util/time.rs index 11a543741..f96859b8e 100644 --- a/packages/core/src/util/time.rs +++ b/packages/core/src/util/time.rs @@ -3,7 +3,9 @@ use chrono::NaiveDateTime; use std::io; use std::time::{SystemTime, UNIX_EPOCH}; -pub fn system_time_to_date_time(system_time: io::Result) -> Result { +pub fn system_time_to_date_time( + system_time: io::Result, +) -> Result { // extract system time or resort to current time if failure let system_time = system_time.unwrap_or(SystemTime::now()); let std_duration = system_time.duration_since(UNIX_EPOCH)?; diff --git a/packages/ui/style/tailwind.config.js b/packages/ui/style/tailwind.config.js index a6e7ea849..58c9d2e68 100644 --- a/packages/ui/style/tailwind.config.js +++ b/packages/ui/style/tailwind.config.js @@ -3,7 +3,7 @@ const plugin = require('tailwindcss/plugin'); const defaultTheme = require('tailwindcss/defaultTheme'); module.exports = { - purge: ['./src/index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], + content: ['./src/index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], darkMode: 'media', mode: 'jit', theme: { diff --git a/yarn.lock b/yarn.lock index 0cead4988..4312fa9b4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -468,7 +468,7 @@ "@babel/types@^7.12.6", "@babel/types@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.7.tgz#4ed19d51f840ed4bd5645be6ce40775fecf03159" - integrity sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg== + integrity sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi32XZntZcg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0"