views

Attribute Macro views 

Source
#[views]
Expand description

The main views procedural macro

ยงExample

use view_types::views;
 
fn validate_ratio(ratio: &f32) -> bool {
    (*ratio >= 0.0 && *ratio <= 1.0)
}
 
#[views(
    frag all {
        offset,
        limit,
    }
    frag keyword {
        Some(query),
        words_limit
    }
    frag semantic {
        vector
    }
    pub view KeywordSearch {
        ..all,
        ..keyword,
    }
    pub view SemanticSearch<'a> {
        ..all,
        ..semantic,
    }
    pub view HybridSearch<'a> {
        ..all,
        ..keyword,
        ..semantic,
        Some(ratio) if validate_ratio(ratio)
    }
)]
pub struct Search<'a> {
    query: Option<String>,
    offset: usize,
    limit: usize,
    words_limit: Option<usize>,
    vector: Option<&'a Vec<u8>>,
    ratio: Option<f32>,
}