-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add export_keys
optional param to native_db
macro
#246
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,27 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
use native_db::*; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
use native_model::{native_model, Model}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
use serde::{Deserialize, Serialize}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// TODO somehow test visibility of keys enum from a sibling/child crate? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
IMHO, it is preferable for this feature to be tested by an external library to avoid regressions. For now, it's fine, but I would prefer that you leave the TODO. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/// Test struct to ensure `#[native_db(export_keys = true)]` compiles successfully | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug)] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#[native_model(id = 1, version = 1)] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#[native_db(export_keys = true)] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
struct Item { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#[primary_key] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id: u32, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#[secondary_key] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name: String, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#[test] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fn test_insert_my_item() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
let item = Item { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id: 1, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name: "test".to_string(), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
let key = item.native_db_primary_key(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assert_eq!(key, 1_u32.to_key()); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+20
to
+26
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I suggest simply testing whether the database works with a get on the primary keys and a get on the secondary keys. This ensures that there are no regressions with the addition of the new
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think about moving the documentation of
export_keys
into the documentation ofdefine
in order to have all the model creation documentation in one place?