pub struct BearNote { /* private fields */ }Implementations§
Source§impl BearNote
impl BearNote
Sourcepub fn id(&self) -> BearNoteId
pub fn id(&self) -> BearNoteId
Examples found in repository?
examples/query_demo.rs (line 17)
3fn main() -> Result<(), BearError> {
4 let db = BearDb::new()?;
5
6 // Example 1: Using typed API
7 println!("=== Typed API Examples ===\n");
8
9 let tags = db.tags()?;
10 println!("Total tags: {}\n", tags.count());
11
12 // Using the new NotesQuery API - much more readable!
13 db.notes(NotesQuery::default())?
14 .into_iter()
15 .for_each(|note| {
16 println!("Note: {:?}", note.title());
17 db.note_links(note.id())
18 .unwrap()
19 .into_iter()
20 .for_each(|link| println!(" Linked: {:?}", link.title()));
21
22 let note_tags = db.note_tags(note.id()).unwrap();
23 println!(" Tags: {:?}\n", tags.names(¬e_tags));
24 });
25
26 // Example 2: Using generic SQL query API with DataFrames
27 println!("\n=== Generic SQL Query API Examples ===\n");
28
29 // Simple query
30 println!("Top 5 most recent notes:");
31 let df = db
32 .query("SELECT title, created FROM notes WHERE is_trashed = 0 ORDER BY created DESC LIMIT 5")?;
33 println!("{}\n", df);
34
35 // Join query
36 println!("Notes with their tags:");
37 let df = db.query(
38 r"
39 SELECT n.title, t.name as tag_name
40 FROM notes n
41 JOIN note_tags nt ON n.id = nt.note_id
42 JOIN tags t ON nt.tag_id = t.id
43 WHERE n.is_trashed = 0
44 ORDER BY n.modified DESC
45 LIMIT 10
46 ",
47 )?;
48 println!("{}\n", df);
49
50 // Aggregation query
51 println!("Tag usage statistics:");
52 let df = db.query(
53 r"
54 SELECT t.name, COUNT(*) as note_count
55 FROM tags t
56 JOIN note_tags nt ON t.id = nt.tag_id
57 GROUP BY t.id, t.name
58 ORDER BY note_count DESC
59 LIMIT 10
60 ",
61 )?;
62 println!("{}\n", df);
63
64 Ok(())
65}pub fn unique_id(&self) -> &str
Sourcepub fn title(&self) -> &str
pub fn title(&self) -> &str
Examples found in repository?
examples/query_demo.rs (line 16)
3fn main() -> Result<(), BearError> {
4 let db = BearDb::new()?;
5
6 // Example 1: Using typed API
7 println!("=== Typed API Examples ===\n");
8
9 let tags = db.tags()?;
10 println!("Total tags: {}\n", tags.count());
11
12 // Using the new NotesQuery API - much more readable!
13 db.notes(NotesQuery::default())?
14 .into_iter()
15 .for_each(|note| {
16 println!("Note: {:?}", note.title());
17 db.note_links(note.id())
18 .unwrap()
19 .into_iter()
20 .for_each(|link| println!(" Linked: {:?}", link.title()));
21
22 let note_tags = db.note_tags(note.id()).unwrap();
23 println!(" Tags: {:?}\n", tags.names(¬e_tags));
24 });
25
26 // Example 2: Using generic SQL query API with DataFrames
27 println!("\n=== Generic SQL Query API Examples ===\n");
28
29 // Simple query
30 println!("Top 5 most recent notes:");
31 let df = db
32 .query("SELECT title, created FROM notes WHERE is_trashed = 0 ORDER BY created DESC LIMIT 5")?;
33 println!("{}\n", df);
34
35 // Join query
36 println!("Notes with their tags:");
37 let df = db.query(
38 r"
39 SELECT n.title, t.name as tag_name
40 FROM notes n
41 JOIN note_tags nt ON n.id = nt.note_id
42 JOIN tags t ON nt.tag_id = t.id
43 WHERE n.is_trashed = 0
44 ORDER BY n.modified DESC
45 LIMIT 10
46 ",
47 )?;
48 println!("{}\n", df);
49
50 // Aggregation query
51 println!("Tag usage statistics:");
52 let df = db.query(
53 r"
54 SELECT t.name, COUNT(*) as note_count
55 FROM tags t
56 JOIN note_tags nt ON t.id = nt.tag_id
57 GROUP BY t.id, t.name
58 ORDER BY note_count DESC
59 LIMIT 10
60 ",
61 )?;
62 println!("{}\n", df);
63
64 Ok(())
65}pub fn content(&self) -> &str
pub fn modified(&self) -> OffsetDateTime
pub fn created(&self) -> OffsetDateTime
pub fn is_pinned(&self) -> bool
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BearNote
impl RefUnwindSafe for BearNote
impl Send for BearNote
impl Sync for BearNote
impl Unpin for BearNote
impl UnwindSafe for BearNote
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more