clippies resolved, formatted, readme fixed

This commit is contained in:
Shautvast 2023-03-30 21:28:35 +02:00
parent 149a7a7110
commit 5e2536e207
5 changed files with 13 additions and 12 deletions

View file

@ -1,9 +1,8 @@
# Sqlighte.Rs # Sqlighte.Rs
* rust version of https://gitlab.com/sander-hautvast/sqlighter * rust version of https://gitlab.com/sander-hautvast/sqlighter
* still work in progress
Creating a database will be as simple as: Creating a database is as simple as:
```rust ```rust
fn test_build() -> Result<(), Error> { fn test_build() -> Result<(), Error> {
let mut builder = Builder::new(); let mut builder = Builder::new();
@ -18,7 +17,7 @@ fn test_build() -> Result<(), Error> {
let database: Database = builder.into(); let database: Database = builder.into();
let file = File::create("foo.db")?; let file = File::create("foo.db")?;
let writer = BufWriter::new(file); let writer = BufWriter::new(file);
write(database, writer)?; write_sqlite(database, writer)?;
Ok(()) Ok(())
} }
``` ```

View file

@ -37,8 +37,7 @@ impl DatabaseBuilder {
self.current_page.key = record.rowid; //clone? self.current_page.key = record.rowid; //clone?
let bytes: Vec<u8> = record.into(); let bytes: Vec<u8> = record.into();
self.current_page.put_bytes_bw(&bytes); self.current_page.put_bytes_bw(&bytes);
self.current_page self.current_page.put_u16(self.current_page.bw_position);
.put_u16(self.current_page.bw_position as u16);
self.n_records_on_current_page += 1; self.n_records_on_current_page += 1;
} }

View file

@ -33,7 +33,7 @@ impl From<DatabaseBuilder> for Database {
} }
} }
pub fn write<W: Write>(database: Database, mut writer: BufWriter<W>) -> Result<(), Error> { pub fn write_sqlite<W: Write>(database: Database, mut writer: BufWriter<W>) -> Result<(), Error> {
let mut current_top_layer = database.leaf_pages; let mut current_top_layer = database.leaf_pages;
let mut n_pages = current_top_layer.len(); let mut n_pages = current_top_layer.len();
while current_top_layer.len() > 1 { while current_top_layer.len() > 1 {
@ -48,7 +48,11 @@ pub fn write<W: Write>(database: Database, mut writer: BufWriter<W>) -> Result<(
set_childrefs_write(table_root_page, &mut writer, 3) set_childrefs_write(table_root_page, &mut writer, 3)
} }
fn set_childrefs_write<W: Write>(page: &mut Page, writer: &mut BufWriter<W>, mut page_counter: u32) -> Result<(), Error> { fn set_childrefs_write<W: Write>(
page: &mut Page,
writer: &mut BufWriter<W>,
mut page_counter: u32,
) -> Result<(), Error> {
if let PageType::Interior = page.page_type { if let PageType::Interior = page.page_type {
page.fw_position = page::POSITION_CELL_COUNT; page.fw_position = page::POSITION_CELL_COUNT;
page.put_u16((page.children.len() - 1) as u16); page.put_u16((page.children.len() - 1) as u16);
@ -67,7 +71,7 @@ fn set_childrefs_write<W: Write>(page: &mut Page, writer: &mut BufWriter<W>, mut
writer.write_all(&page.data)?; writer.write_all(&page.data)?;
for child in page.children.iter_mut() { for child in &mut page.children {
set_childrefs_write(child, writer, page_counter)?; set_childrefs_write(child, writer, page_counter)?;
} }
Ok(()) Ok(())
@ -213,4 +217,3 @@ pub const TABLE_LEAF_PAGE: u8 = 0x0d;
pub const TABLE_INTERIOR_PAGE: u8 = 0x05; pub const TABLE_INTERIOR_PAGE: u8 = 0x05;
const INDEX_LEAF_PAGE: u8 = 0x0a; const INDEX_LEAF_PAGE: u8 = 0x0a;
const INDEX_INTERIOR_PAGE: u8 = 0x02; const INDEX_INTERIOR_PAGE: u8 = 0x02;

View file

@ -10,7 +10,7 @@ mod varint;
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::builder::DatabaseBuilder; use crate::builder::DatabaseBuilder;
use crate::database::{write, Database}; use crate::database::{write_sqlite, Database};
use crate::record::Record; use crate::record::Record;
use crate::values; use crate::values;
use std::fs::File; use std::fs::File;
@ -28,7 +28,7 @@ mod tests {
let database: Database = builder.into(); let database: Database = builder.into();
let file = File::create("foo.db")?; let file = File::create("foo.db")?;
let writer = BufWriter::new(file); let writer = BufWriter::new(file);
write(database, writer)?; write_sqlite(database, writer)?;
Ok(()) Ok(())
} }
} }

View file

@ -1,5 +1,5 @@
use crate::database::SchemaRecord; use crate::database::SchemaRecord;
use crate::values::{Value, integer, string}; use crate::values::{integer, string, Value};
use crate::varint; use crate::varint;
pub struct Record { pub struct Record {