diff --git a/Cargo.toml b/Cargo.toml index 6b19c627..2ced39c6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["codegen", "examples", "performance_measurement", "performance_measur [package] name = "worktable" version = "0.5.4" -edition = "2021" +edition = "2024" authors = ["Handy-caT"] license = "MIT" repository = "https://github.com/pathscale/WorkTable" diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml index c53f8c8e..b2513920 100644 --- a/codegen/Cargo.toml +++ b/codegen/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "worktable_codegen" version = "0.5.4" -edition = "2021" +edition = "2024" license = "MIT" description = "WorkTable codegeneration crate" diff --git a/codegen/src/persist_index/generator.rs b/codegen/src/persist_index/generator.rs index c8ac993a..34afe1e2 100644 --- a/codegen/src/persist_index/generator.rs +++ b/codegen/src/persist_index/generator.rs @@ -432,10 +432,11 @@ mod tests { } }; let struct_ = Parser::parse_struct(input).unwrap(); - let gen = Generator::new(struct_); + let generator = Generator::new(struct_); assert_eq!( - gen.field_types + generator + .field_types .get(&Ident::new("test_idx", Span::call_site())) .unwrap() .to_string() @@ -443,7 +444,8 @@ mod tests { "i64" ); assert_eq!( - gen.field_types + generator + .field_types .get(&Ident::new("exchnage_idx", Span::call_site())) .unwrap() .to_string() diff --git a/codegen/src/persist_index/mod.rs b/codegen/src/persist_index/mod.rs index 5a5cbe6e..1f040e2b 100644 --- a/codegen/src/persist_index/mod.rs +++ b/codegen/src/persist_index/mod.rs @@ -10,12 +10,12 @@ mod space; pub fn expand(input: TokenStream) -> syn::Result { let input_struct = Parser::parse_struct(input)?; - let mut gen = Generator::new(input_struct); + let mut generator = Generator::new(input_struct); - let type_def = gen.gen_persist_type()?; - let persistable_def = gen.gen_persistable_impl()?; - let impl_def = gen.gen_persist_impl()?; - let space_index = gen.gen_space_index(); + let type_def = generator.gen_persist_type()?; + let persistable_def = generator.gen_persistable_impl()?; + let impl_def = generator.gen_persist_impl()?; + let space_index = generator.gen_space_index(); Ok(quote! { #type_def diff --git a/codegen/src/persist_table/mod.rs b/codegen/src/persist_table/mod.rs index 5d000020..3376db5b 100644 --- a/codegen/src/persist_table/mod.rs +++ b/codegen/src/persist_table/mod.rs @@ -14,16 +14,16 @@ pub fn expand(input: TokenStream) -> syn::Result { let pk_ident = Parser::parse_pk_ident(&input_fn); let attributes = Parser::parse_attributes(&input_fn.attrs); - let gen = Generator { + let generator = Generator { struct_def: input_fn, pk_ident, attributes, }; - let space_file_def = gen.gen_space_file_def(); - let persistence_engine = gen.get_persistence_engine_type(); - let persistence_task = gen.get_persistence_task_type(); - let size_measurable_impl = gen.gen_size_measurable_impl()?; + let space_file_def = generator.gen_space_file_def(); + let persistence_engine = generator.get_persistence_engine_type(); + let persistence_task = generator.get_persistence_task_type(); + let size_measurable_impl = generator.gen_size_measurable_impl()?; Ok(quote! { #size_measurable_impl diff --git a/codegen/src/worktable/generator/primary_key.rs b/codegen/src/worktable/generator/primary_key.rs index f3cdee80..308a7a1e 100644 --- a/codegen/src/worktable/generator/primary_key.rs +++ b/codegen/src/worktable/generator/primary_key.rs @@ -112,10 +112,10 @@ impl Generator { .get(i) .expect("primary key column name always exists if in primary keys list"); - let gen = Self::get_generator_from_type(type_, i)?; + let generator = Self::get_generator_from_type(type_, i)?; quote! { impl TablePrimaryKey for #ident { - type Generator = #gen; + type Generator = #generator; } } } diff --git a/examples/src/main.rs b/examples/src/main.rs index 63b95647..b5726594 100644 --- a/examples/src/main.rs +++ b/examples/src/main.rs @@ -47,7 +47,7 @@ async fn main() { attr2: 345, test: 1, id: 0, - attr_float: 100.0.into(), + attr_float: 100.0, attr_string: "String_attr0".to_string(), }; @@ -58,7 +58,7 @@ async fn main() { attr2: 345 + i as i32, test: i as i32, id: i as u64, - attr_float: (100.0 + i as f64).into(), + attr_float: 100.0 + i as f64, attr_string: format!("String_attr{}", i), }; diff --git a/src/in_memory/pages.rs b/src/in_memory/pages.rs index 70949bd0..f7ba56f5 100644 --- a/src/in_memory/pages.rs +++ b/src/in_memory/pages.rs @@ -282,10 +282,11 @@ where let page = pages .get(page_id_mapper(link.page_id.into())) .ok_or(ExecutionError::PageNotFound(link.page_id))?; - let gen_row = page - .get_mut_row_ref(link) - .map_err(ExecutionError::DataPageError)? - .unseal_unchecked(); + let gen_row = unsafe { + page.get_mut_row_ref(link) + .map_err(ExecutionError::DataPageError)? + .unseal_unchecked() + }; let res = op(gen_row); Ok(res) } @@ -313,8 +314,10 @@ where .get(page_id_mapper(link.page_id.into())) .ok_or(ExecutionError::PageNotFound(link.page_id))?; let gen_row = ::WrappedRow::from_inner(row); - page.save_row_by_link(&gen_row, link) - .map_err(ExecutionError::DataPageError) + unsafe { + page.save_row_by_link(&gen_row, link) + .map_err(ExecutionError::DataPageError) + } } pub fn delete(&self, link: Link) -> Result<(), ExecutionError> { diff --git a/tests/persistence/sync/mod.rs b/tests/persistence/sync/mod.rs index 75ad8330..ad886a4c 100644 --- a/tests/persistence/sync/mod.rs +++ b/tests/persistence/sync/mod.rs @@ -53,7 +53,7 @@ fn test_space_insert_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.234.into(), + field: 0.234, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -93,7 +93,7 @@ fn test_space_insert_many_sync() { let row = TestSyncRow { another: i, non_unique: (i % 4) as u32, - field: (i as f64 / 100.0).into(), + field: i as f64 / 100.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -137,7 +137,7 @@ fn test_space_update_full_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -145,7 +145,7 @@ fn test_space_update_full_sync() { .update(TestSyncRow { another: 13, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: row.id, }) .await @@ -186,7 +186,7 @@ fn test_space_update_query_pk_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -230,12 +230,12 @@ fn test_space_update_query_unique_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); table - .update_field_by_another(FieldByAnotherQuery { field: 1.0.into() }, 42) + .update_field_by_another(FieldByAnotherQuery { field: 1.0 }, 42) .await .unwrap(); table.wait_for_ops().await; @@ -274,7 +274,7 @@ fn test_space_update_query_non_unique_sync() { let row = TestSyncRow { another: 42, non_unique: 10, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -315,7 +315,7 @@ fn test_space_delete_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -355,7 +355,7 @@ fn test_space_delete_query_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); diff --git a/tests/persistence/sync/string_primary_index.rs b/tests/persistence/sync/string_primary_index.rs index 785aa826..6b150df6 100644 --- a/tests/persistence/sync/string_primary_index.rs +++ b/tests/persistence/sync/string_primary_index.rs @@ -52,7 +52,7 @@ fn test_space_insert_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.234.into(), + field: 0.234, id: "Some string to test".to_string(), }; table.insert(row.clone()).unwrap(); @@ -62,7 +62,6 @@ fn test_space_insert_sync() { { let table = TestSyncWorkTable::load_from_file(config).await.unwrap(); assert!(table.select(pk.into()).is_some()); - assert_eq!(table.0.pk_gen.get_state(), ()) } }); } @@ -94,7 +93,7 @@ fn test_space_insert_many_sync() { let row = TestSyncRow { another: i, non_unique: (i % 4) as u32, - field: (i as f64 / 100.0).into(), + field: i as f64 / 100.0, id: format!("Some string to test number {}", i), }; table.insert(row.clone()).unwrap(); @@ -110,7 +109,6 @@ fn test_space_insert_many_sync() { for pk in pks { assert!(table.select(pk.into()).is_some()); } - assert_eq!(table.0.pk_gen.get_state(), ()) } }); } @@ -139,7 +137,7 @@ fn test_space_update_full_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: "Some string before".to_string(), }; table.insert(row.clone()).unwrap(); @@ -147,7 +145,7 @@ fn test_space_update_full_sync() { .update(TestSyncRow { another: 13, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: "Some string before".to_string(), }) .await @@ -159,7 +157,6 @@ fn test_space_update_full_sync() { let table = TestSyncWorkTable::load_from_file(config).await.unwrap(); assert!(table.select(pk.clone().into()).is_some()); assert_eq!(table.select(pk.into()).unwrap().another, 13); - assert_eq!(table.0.pk_gen.get_state(), ()) } }); } @@ -188,7 +185,7 @@ fn test_space_update_query_pk_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: "Some string before".to_string(), }; table.insert(row.clone()).unwrap(); @@ -203,7 +200,6 @@ fn test_space_update_query_pk_sync() { let table = TestSyncWorkTable::load_from_file(config).await.unwrap(); assert!(table.select(pk.clone().into()).is_some()); assert_eq!(table.select(pk.into()).unwrap().another, 13); - assert_eq!(table.0.pk_gen.get_state(), ()) } }); } @@ -233,12 +229,12 @@ fn test_space_update_query_unique_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: "Some string before".to_string(), }; table.insert(row.clone()).unwrap(); table - .update_field_by_another(FieldByAnotherQuery { field: 1.0.into() }, 42) + .update_field_by_another(FieldByAnotherQuery { field: 1.0 }, 42) .await .unwrap(); table.wait_for_ops().await; @@ -248,7 +244,6 @@ fn test_space_update_query_unique_sync() { let table = TestSyncWorkTable::load_from_file(config).await.unwrap(); assert!(table.select(pk.clone().into()).is_some()); assert_eq!(table.select(pk.into()).unwrap().field, 1.0); - assert_eq!(table.0.pk_gen.get_state(), ()) } }); } @@ -278,7 +273,7 @@ fn test_space_update_query_non_unique_sync() { let row = TestSyncRow { another: 42, non_unique: 10, - field: 0.0.into(), + field: 0.0, id: "Some string before".to_string(), }; table.insert(row.clone()).unwrap(); @@ -293,7 +288,6 @@ fn test_space_update_query_non_unique_sync() { let table = TestSyncWorkTable::load_from_file(config).await.unwrap(); assert!(table.select(pk.clone().into()).is_some()); assert_eq!(table.select(pk.into()).unwrap().another, 13); - assert_eq!(table.0.pk_gen.get_state(), ()) } }); } @@ -322,7 +316,7 @@ fn test_space_delete_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: "Some string before".to_string(), }; table.insert(row.clone()).unwrap(); @@ -333,7 +327,6 @@ fn test_space_delete_sync() { { let table = TestSyncWorkTable::load_from_file(config).await.unwrap(); assert!(table.select(pk.into()).is_none()); - assert_eq!(table.0.pk_gen.get_state(), ()) } }); } @@ -362,7 +355,7 @@ fn test_space_delete_query_sync() { let row = TestSyncRow { another: 42, non_unique: 0, - field: 0.0.into(), + field: 0.0, id: "Some string before".to_string(), }; table.insert(row.clone()).unwrap(); @@ -373,7 +366,6 @@ fn test_space_delete_query_sync() { { let table = TestSyncWorkTable::load_from_file(config).await.unwrap(); assert!(table.select(pk.into()).is_none()); - assert_eq!(table.0.pk_gen.get_state(), ()) } }); } diff --git a/tests/persistence/sync/string_secondary_index.rs b/tests/persistence/sync/string_secondary_index.rs index 6f0f1b7f..90eacb60 100644 --- a/tests/persistence/sync/string_secondary_index.rs +++ b/tests/persistence/sync/string_secondary_index.rs @@ -52,7 +52,7 @@ fn test_space_insert_sync() { let row = TestSyncRow { another: "Some string to test".to_string(), non_unique: 0, - field: 0.234.into(), + field: 0.234, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -94,7 +94,7 @@ fn test_space_insert_many_sync() { let row = TestSyncRow { another: format!("Some string to test number {}", i), non_unique: (i % 4) as u32, - field: (i as f64 / 100.0).into(), + field: i as f64 / 100.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -140,7 +140,7 @@ fn test_space_update_full_sync() { let row = TestSyncRow { another: "Some string before".to_string(), non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -148,7 +148,7 @@ fn test_space_update_full_sync() { .update(TestSyncRow { another: "Some string to test updated".to_string(), non_unique: 0, - field: 0.0.into(), + field: 0.0, id: row.id, }) .await @@ -196,7 +196,7 @@ fn test_space_update_query_pk_sync() { let row = TestSyncRow { another: "Some string before".to_string(), non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -249,13 +249,13 @@ fn test_space_update_query_unique_sync() { let row = TestSyncRow { another: "Some string before".to_string(), non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); table .update_field_by_another( - FieldByAnotherQuery { field: 1.0.into() }, + FieldByAnotherQuery { field: 1.0 }, "Some string before".to_string(), ) .await @@ -299,7 +299,7 @@ fn test_space_update_query_non_unique_sync() { let row = TestSyncRow { another: "Some string before".to_string(), non_unique: 10, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -351,7 +351,7 @@ fn test_space_delete_sync() { let row = TestSyncRow { another: "Some string before".to_string(), non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); @@ -391,7 +391,7 @@ fn test_space_delete_query_sync() { let row = TestSyncRow { another: "Some string before".to_string(), non_unique: 0, - field: 0.0.into(), + field: 0.0, id: table.get_next_pk().0, }; table.insert(row.clone()).unwrap(); diff --git a/tests/worktable/float.rs b/tests/worktable/float.rs index 0f86c85d..8dfcfb28 100644 --- a/tests/worktable/float.rs +++ b/tests/worktable/float.rs @@ -23,19 +23,19 @@ fn select_all_range_float_test() { let row1 = TestFloatRow { id: table.get_next_pk().into(), test: 3, - another: 100.0.into(), + another: 100.0, exchange: "M".to_string(), }; let row2 = TestFloatRow { id: table.get_next_pk().into(), test: 1, - another: 200.0.into(), + another: 200.0, exchange: "N".to_string(), }; let row3 = TestFloatRow { id: table.get_next_pk().into(), test: 2, - another: 300.0.into(), + another: 300.0, exchange: "P".to_string(), }; @@ -45,7 +45,7 @@ fn select_all_range_float_test() { let all = table .select_all() - .where_by(|row| row.another > 99.0.into() && row.another < 300.0.into()) + .where_by(|row| row.another > 99.0 && row.another < 300.0) .execute() .unwrap(); @@ -61,19 +61,19 @@ fn select_by_another_test() { let row1 = TestFloatRow { id: table.get_next_pk().into(), test: 3, - another: 100.0.into(), + another: 100.0, exchange: "M".to_string(), }; let row2 = TestFloatRow { id: table.get_next_pk().into(), test: 1, - another: 100.0.into(), + another: 100.0, exchange: "N".to_string(), }; let row3 = TestFloatRow { id: table.get_next_pk().into(), test: 2, - another: 200.0.into(), + another: 200.0, exchange: "P".to_string(), }; @@ -81,11 +81,11 @@ fn select_by_another_test() { let _ = table.insert(row2.clone()).unwrap(); let _ = table.insert(row3.clone()).unwrap(); - let where_100 = table.select_by_another(100.0.into()).execute().unwrap(); + let where_100 = table.select_by_another(100.0).execute().unwrap(); assert_eq!(where_100.len(), 2); assert!(where_100.contains(&row1)); assert!(where_100.contains(&row2)); - let where_200 = table.select_by_another(200.0.into()).execute().unwrap(); + let where_200 = table.select_by_another(200.0).execute().unwrap(); assert_eq!(where_200.len(), 1); assert!(where_200.contains(&row3)); }