(env: Arc<Environment>, db: Database)
| 165 | |
| 166 | impl VersionControl { |
| 167 | pub fn new(env: Arc<Environment>, db: Database) -> lmdb::Result<(Self, VersionNumber)> { |
| 168 | let version = VersionNumber(0); |
| 169 | let version_meta = VersionInfo::new_implicit(version, u32::MAX, Utc::now(), 0, 0, 0); |
| 170 | |
| 171 | let version_key = key!(v:version); |
| 172 | let current_version_key = key!(m:current_version); |
| 173 | let version_bytes = version_meta.serialize(); |
| 174 | |
| 175 | let mut txn = env.begin_rw_txn()?; |
| 176 | txn.put(db, &version_key, &version_bytes, WriteFlags::empty())?; |
| 177 | txn.put( |
| 178 | db, |
| 179 | ¤t_version_key, |
| 180 | &version.to_le_bytes(), |
| 181 | WriteFlags::empty(), |
| 182 | )?; |
| 183 | txn.commit()?; |
| 184 | |
| 185 | Ok((Self { env, db }, version)) |
| 186 | } |
| 187 | |
| 188 | pub fn from_existing(env: Arc<Environment>, db: Database) -> Self { |
| 189 | Self { env, db } |
nothing calls this directly
no test coverage detected