from typing import Self
from dataclasses import dataclass
from bluebase.core import Value
from bluebase.pf import (
PfPageId,
PfPageData,
)
from bluebase.rm import RmRecordId
__all__ = (
'IxSlotId',
'IxNodeId',
'IxNodeData',
'IxPostingId',
'IxBucketId',
'IxBucketData',
'IxEntry',
)
[docs]
class IxSlotId(int):
"""
"""
[docs]
@classmethod
def first(cls) -> Self:
"""
"""
return cls(0)
[docs]
def succ(self) -> Self:
"""
"""
return type(self)(int(self) + 1)
[docs]
def pred(self) -> Self:
"""
"""
return type(self)(int(self) - 1)
[docs]
class IxNodeId(PfPageId):
"""
"""
pass
[docs]
class IxNodeData(PfPageData):
"""
"""
pass
[docs]
class IxPostingId(int):
"""
"""
[docs]
@classmethod
def first(cls) -> Self:
"""
"""
return cls(0)
[docs]
def succ(self) -> Self:
"""
"""
return type(self)(int(self) + 1)
[docs]
def pred(self) -> Self:
"""
"""
return type(self)(int(self) - 1)
[docs]
class IxBucketId(PfPageId):
"""
"""
pass
[docs]
class IxBucketData(PfPageData):
"""
"""
pass
[docs]
@dataclass(frozen=True, slots=True)
class IxEntry:
"""
Attributes:
value:
rid:
"""
value: Value
rid: RmRecordId