1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
mod incoming;
pub mod record;
pub mod store;
#[cfg(test)]
mod tests;
use crate::error::*;
use rusqlite::types::{ToSql, ToSqlOutput};
use rusqlite::Result as RusqliteResult;
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[repr(u8)]
pub enum SyncedBookmarkKind {
Bookmark = 1,
Query = 2,
Folder = 3,
Livemark = 4,
Separator = 5,
}
impl SyncedBookmarkKind {
#[inline]
pub fn from_u8(v: u8) -> Result<Self> {
match v {
1 => Ok(SyncedBookmarkKind::Bookmark),
2 => Ok(SyncedBookmarkKind::Query),
3 => Ok(SyncedBookmarkKind::Folder),
4 => Ok(SyncedBookmarkKind::Livemark),
5 => Ok(SyncedBookmarkKind::Separator),
_ => Err(ErrorKind::UnsupportedSyncedBookmarkKind(v).into()),
}
}
}
impl From<SyncedBookmarkKind> for dogear::Kind {
#[inline]
fn from(kind: SyncedBookmarkKind) -> dogear::Kind {
match kind {
SyncedBookmarkKind::Bookmark => dogear::Kind::Bookmark,
SyncedBookmarkKind::Query => dogear::Kind::Query,
SyncedBookmarkKind::Folder => dogear::Kind::Folder,
SyncedBookmarkKind::Livemark => dogear::Kind::Livemark,
SyncedBookmarkKind::Separator => dogear::Kind::Separator,
}
}
}
impl From<dogear::Kind> for SyncedBookmarkKind {
#[inline]
fn from(kind: dogear::Kind) -> SyncedBookmarkKind {
match kind {
dogear::Kind::Bookmark => SyncedBookmarkKind::Bookmark,
dogear::Kind::Query => SyncedBookmarkKind::Query,
dogear::Kind::Folder => SyncedBookmarkKind::Folder,
dogear::Kind::Livemark => SyncedBookmarkKind::Livemark,
dogear::Kind::Separator => SyncedBookmarkKind::Separator,
}
}
}
impl ToSql for SyncedBookmarkKind {
#[inline]
fn to_sql(&self) -> RusqliteResult<ToSqlOutput<'_>> {
Ok(ToSqlOutput::from(*self as u8))
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[repr(u8)]
pub enum SyncedBookmarkValidity {
Valid = 1,
Reupload = 2,
Replace = 3,
}
impl SyncedBookmarkValidity {
#[inline]
pub fn from_u8(v: u8) -> Result<Self> {
match v {
1 => Ok(SyncedBookmarkValidity::Valid),
2 => Ok(SyncedBookmarkValidity::Reupload),
3 => Ok(SyncedBookmarkValidity::Replace),
_ => Err(ErrorKind::UnsupportedSyncedBookmarkValidity(v).into()),
}
}
}
impl From<SyncedBookmarkValidity> for dogear::Validity {
fn from(validity: SyncedBookmarkValidity) -> dogear::Validity {
match validity {
SyncedBookmarkValidity::Valid => dogear::Validity::Valid,
SyncedBookmarkValidity::Reupload => dogear::Validity::Reupload,
SyncedBookmarkValidity::Replace => dogear::Validity::Replace,
}
}
}
impl ToSql for SyncedBookmarkValidity {
fn to_sql(&self) -> RusqliteResult<ToSqlOutput<'_>> {
Ok(ToSqlOutput::from(*self as u8))
}
}