Module api_extensions

Module api_extensions 

Source
Expand description

Extended API patterns for future extensibility.

This module provides advanced API design patterns that enable future extensions while maintaining backward compatibility. These patterns allow for optional features, alternative implementations, and configurable algorithms.

§Extension Traits

Extension traits provide optional functionality that can be implemented by different backends or added in future versions:

use clock_curve_math::{api_extensions::FieldExtensions, FieldElement, FieldOps};

// Use extended functionality if available
let element = FieldElement::from_u64(42);
if let Some(sqrt) = element.try_sqrt() {
    // Square root is available
    assert_eq!(sqrt.square(), element);
}

§Operation Builders

Builders allow complex operations to be configured and executed:

use clock_curve_math::{api_extensions::{ExponentiationBuilder, Algorithm}, FieldElement, BigInt};

let base = FieldElement::from_u64(2);
let exp = BigInt::from_u64(1000);

let result = ExponentiationBuilder::new(&base, &exp)
    .algorithm(Algorithm::SlidingWindow(4))
    .build()
    .compute();

§Configurable Operations

Operations can be configured with different algorithms and parameters:

use clock_curve_math::{api_extensions::{MultiplicationConfig, MultiplicationAlgorithm, ConfigurableArithmetic}, FieldElement, FieldOps};

let a = FieldElement::from_u64(42);
let b = FieldElement::from_u64(24);

let config = MultiplicationConfig {
    algorithm: MultiplicationAlgorithm::Standard,
    ..Default::default()
};

// Configurable multiplication with algorithm selection
let product = a.mul_with_config(&b, &config);

Structs§

ApiVersion
Version information for API compatibility.
BatchConfig
Batch operation configuration.
BatchInverseBuilder
Builder for batch inversion operations.
ConfiguredExponentiation
Configured exponentiation operation.
ExponentiationBuilder
Builder for exponentiation operations.
ExponentiationConfig
Configuration for exponentiation operations.
MultiplicationConfig
Configuration for multiplication operations.

Enums§

Algorithm
Algorithms available for different operations.
AllocationStrategy
Memory allocation strategies for batch operations.
ApiFeature
API features that may be version-dependent.
HardwareOperation
Hardware operations that may be accelerated.
MultiplicationAlgorithm
Algorithms for multiplication.

Traits§

AdvancedComputation
Advanced computational traits for future extensibility.
ConfigurableArithmetic
Trait for configurable arithmetic operations.
FieldExtensions
Extension trait for optional field operations.
FutureOperations
Future operation hooks.
HardwareAcceleration
Hardware acceleration traits for future optimized implementations.
MemoryOptimization
Memory layout optimizations for cache-friendly operations.