pub struct VsaConfigSchema {
pub dimension: usize,
pub density: f64,
pub scaling: Option<SparsityScaling>,
pub auto_thin: Option<usize>,
pub min_nnz: Option<usize>,
pub max_nnz: Option<usize>,
pub target_accuracy: Option<f64>,
}Expand description
User-provided schema for custom VSA configuration
This allows users to specify their own parameters for specialized use cases without needing to understand the internal scaling formulas.
§Example
use embeddenator_vsa::{VsaConfig, VsaConfigSchema, SparsityScaling};
// Custom schema for a specific application
let schema = VsaConfigSchema {
dimension: 8192,
density: 0.015,
scaling: Some(SparsityScaling::SquareRoot),
auto_thin: Some(1000),
min_nnz: Some(16),
max_nnz: Some(512),
target_accuracy: Some(0.97),
};
let config = VsaConfig::from_schema(schema);
assert_eq!(config.dimension, 8192);Fields§
§dimension: usizeRequired: Number of dimensions
density: f64Required: Target density (0.0-1.0)
scaling: Option<SparsityScaling>Optional: Sparsity scaling mode
auto_thin: Option<usize>Optional: Auto-thinning threshold (0 to disable)
min_nnz: Option<usize>Optional: Minimum non-zero elements
max_nnz: Option<usize>Optional: Maximum non-zero elements
target_accuracy: Option<f64>Optional: Target reconstruction accuracy
Implementations§
Source§impl VsaConfigSchema
impl VsaConfigSchema
Sourcepub fn new(dimension: usize, density: f64) -> VsaConfigSchema
pub fn new(dimension: usize, density: f64) -> VsaConfigSchema
Create a minimal schema with just dimension and density
Sourcepub fn with_scaling(self, mode: SparsityScaling) -> VsaConfigSchema
pub fn with_scaling(self, mode: SparsityScaling) -> VsaConfigSchema
Set scaling mode
Sourcepub fn with_auto_thin(self, threshold: usize) -> VsaConfigSchema
pub fn with_auto_thin(self, threshold: usize) -> VsaConfigSchema
Set auto-thin threshold
Trait Implementations§
Source§impl Clone for VsaConfigSchema
impl Clone for VsaConfigSchema
Source§fn clone(&self) -> VsaConfigSchema
fn clone(&self) -> VsaConfigSchema
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for VsaConfigSchema
impl Debug for VsaConfigSchema
Source§impl<'de> Deserialize<'de> for VsaConfigSchema
impl<'de> Deserialize<'de> for VsaConfigSchema
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<VsaConfigSchema, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<VsaConfigSchema, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for VsaConfigSchema
impl Serialize for VsaConfigSchema
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for VsaConfigSchema
impl RefUnwindSafe for VsaConfigSchema
impl Send for VsaConfigSchema
impl Sync for VsaConfigSchema
impl Unpin for VsaConfigSchema
impl UnwindSafe for VsaConfigSchema
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more