Skip to main content

ChunkMetadata

Struct ChunkMetadata 

Source
pub struct ChunkMetadata {
    pub chapter: Option<String>,
    pub section: Option<String>,
    pub subsection: Option<String>,
    pub topic: Option<String>,
    pub keywords: Vec<String>,
    pub summary: Option<String>,
    pub structural_level: Option<u8>,
    pub position_in_document: Option<f32>,
    pub heading_path: Vec<String>,
    pub confidence: Option<f32>,
    pub custom: HashMap<String, String>,
}
Expand description

Metadata associated with a text chunk, providing semantic context

This structure enriches chunks with information about their position in the document hierarchy, extracted keywords, automatically generated summaries, and other contextual information useful for retrieval and understanding.

Fields§

§chapter: Option<String>

Chapter name/title this chunk belongs to

Examples: “Chapter 1: Introduction”, “Part I”

§section: Option<String>

Section name/title within the chapter

Examples: “1.1 Background”, “Introduction”

§subsection: Option<String>

Subsection name/title within the section

Examples: “1.1.1 Historical Context”, “Early Development”

§topic: Option<String>

Automatically detected or manually assigned topic

Examples: “Machine Learning”, “Neural Networks”, “Data Processing”

§keywords: Vec<String>

Extracted keywords from the chunk content (TF-IDF or similar)

Ordered by relevance/importance, typically 3-10 keywords

§summary: Option<String>

Automatically generated summary of the chunk content

Typically 1-3 sentences capturing the main points

§structural_level: Option<u8>

Hierarchical level in document structure (0 = root/chapter, 1 = section, 2 = subsection, etc.)

Used to understand the depth of this chunk in the document hierarchy

§position_in_document: Option<f32>

Relative position in the document (0.0 to 1.0)

0.0 = beginning, 0.5 = middle, 1.0 = end Useful for positional weighting in retrieval

§heading_path: Vec<String>

Full heading path from document root to this chunk

Example: [“Chapter 1”, “Section 1.1”, “Subsection 1.1.1”] Provides complete context of the chunk’s location in document hierarchy

§confidence: Option<f32>

Confidence score for metadata extraction (0.0 to 1.0)

Indicates how confident the system is about the assigned metadata

§custom: HashMap<String, String>

Custom metadata key-value pairs

Allows for extensibility with domain-specific metadata

Implementations§

Source§

impl ChunkMetadata

Source

pub fn new() -> Self

Create a new empty metadata instance

Source

pub fn with_chapter(self, chapter: String) -> Self

Create metadata with chapter information

Source

pub fn with_section(self, section: String) -> Self

Create metadata with section information

Source

pub fn with_subsection(self, subsection: String) -> Self

Create metadata with subsection information

Source

pub fn with_keywords(self, keywords: Vec<String>) -> Self

Create metadata with keywords

Source

pub fn with_summary(self, summary: String) -> Self

Create metadata with summary

Source

pub fn with_structural_level(self, level: u8) -> Self

Create metadata with structural level

Source

pub fn with_position(self, position: f32) -> Self

Create metadata with position in document

Source

pub fn with_heading_path(self, path: Vec<String>) -> Self

Create metadata with heading path

Source

pub fn add_custom(self, key: String, value: String) -> Self

Add a custom metadata field

Source

pub fn has_structure_info(&self) -> bool

Check if metadata has any structural information (chapter, section, or subsection)

Source

pub fn has_semantic_info(&self) -> bool

Check if metadata has semantic enrichment (keywords or summary)

Source

pub fn get_deepest_heading(&self) -> Option<&String>

Get the deepest level heading (subsection > section > chapter)

Source

pub fn get_hierarchy_string(&self) -> Option<String>

Get full hierarchical context as a formatted string

Example: “Chapter 1 > Section 1.1 > Subsection 1.1.1”

Source

pub fn completeness_score(&self) -> f32

Calculate completeness score (0.0 to 1.0) based on populated fields

Higher scores indicate more complete metadata

Trait Implementations§

Source§

impl Clone for ChunkMetadata

Source§

fn clone(&self) -> ChunkMetadata

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ChunkMetadata

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ChunkMetadata

Source§

fn default() -> ChunkMetadata

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ChunkMetadata

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for ChunkMetadata

Source§

fn eq(&self, other: &ChunkMetadata) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for ChunkMetadata

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ChunkMetadata

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,