Skip to content

Commit 32b1b59

Browse files
committed
feat: add transaction strategies
1 parent 2fc8ea5 commit 32b1b59

14 files changed

Lines changed: 805 additions & 885 deletions

File tree

src/btree/mod.rs

Lines changed: 241 additions & 87 deletions
Large diffs are not rendered by default.

src/btree/node.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ use crate::{
33
page::{spec::PageNumber, Page},
44
};
55
use serde::{de::DeserializeOwned, Serialize};
6-
use std::fmt::Debug;
76

8-
use super::spec::{BTreeCell, BTreePageHeader, PageType, BTREE_PAGE_HEADER_SIZE};
7+
use super::{
8+
spec::{BTreeCell, BTreePageHeader, PageType, BTREE_PAGE_HEADER_SIZE},
9+
KeyTrait, ValueTrait,
10+
};
911

1012
pub struct BTreeNode<K, V> {
1113
pub page: Page<BTreeCell<K, V>>,
@@ -18,11 +20,7 @@ pub struct BTreeNodeSplited<K, V> {
1820
pub sibling_node: BTreeNode<K, V>,
1921
}
2022

21-
impl<
22-
K: Serialize + DeserializeOwned + PartialOrd + Ord + Clone + Debug,
23-
V: Serialize + DeserializeOwned + PartialOrd + Ord + Clone + Debug,
24-
> BTreeNode<K, V>
25-
{
23+
impl<K: KeyTrait, V: ValueTrait> BTreeNode<K, V> {
2624
pub fn is_full(&self, b: u16) -> bool {
2725
match self.header.kind {
2826
PageType::Internal | PageType::Root => self.page.len() == (b * 2 - 1),

0 commit comments

Comments
 (0)