ComponentFactory

Struct ComponentFactory 

Source
pub struct ComponentFactory { /* private fields */ }
Expand description

Component factory for creating configured instances.

This factory provides a centralized way to create core components with proper configuration injection, ensuring consistent component initialization across the application.

§Examples

use subx_cli::core::ComponentFactory;
use subx_cli::config::ProductionConfigService;
use std::sync::Arc;

let config_service = Arc::new(ProductionConfigService::new()?);
let factory = ComponentFactory::new(config_service.as_ref())?;

// Create components with proper configuration
let match_engine = factory.create_match_engine()?;
let file_manager = factory.create_file_manager();
let ai_provider = factory.create_ai_provider()?;

Implementations§

Source§

impl ComponentFactory

Source

pub fn new(config_service: &dyn ConfigService) -> Result<Self>

Create a new component factory with the given configuration service.

§Arguments
  • config_service - Configuration service to load configuration from
§Errors

Returns an error if configuration loading fails.

Source

pub fn create_match_engine(&self) -> Result<MatchEngine>

Create a match engine with AI configuration.

Returns a properly configured MatchEngine instance using the AI configuration section.

§Errors

Returns an error if AI provider creation fails.

Source

pub fn create_file_manager(&self) -> FileManager

Create a file manager with general configuration.

Returns a properly configured FileManager instance using the general configuration section.

Source

pub fn create_ai_provider(&self) -> Result<Box<dyn AIProvider>>

Create an AI provider with AI configuration.

Returns a properly configured AI provider instance based on the provider type specified in the AI configuration.

§Errors

Returns an error if the provider type is unsupported or provider creation fails.

Source

pub fn config(&self) -> &Config

Get a reference to the current configuration.

Returns a reference to the configuration used by this factory.

Source

pub fn create_vad_sync_detector(&self) -> Result<VadSyncDetector>

Create a VAD sync detector with VAD configuration.

Returns a properly configured VadSyncDetector instance using the VAD settings.

§Errors

Returns an error if VAD sync detector creation fails.

Source

pub fn create_vad_detector(&self) -> Result<LocalVadDetector>

Create a local VAD detector for audio processing.

Returns a properly configured LocalVadDetector instance.

§Errors

Returns an error if local VAD detector initialization fails.

Source

pub fn create_audio_processor(&self) -> Result<VadAudioProcessor>

Create an audio processor for VAD operations.

Returns a properly configured VadAudioProcessor instance.

§Errors

Returns an error if audio processor initialization fails.

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> 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<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. 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<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> ErasedDestructor for T
where T: 'static,