Skip to main content

Crate ferroui_splat

Crate ferroui_splat 

Source
Expand description

ferroui-splat

A port of Splat (https://github.com/reactiveui/splat) to Rust: the service locator that ReactiveUI and applications find their services through, the dependency resolvers behind it, logging, the detection of a unit test runner, feature usage tracking, and the application builder with its modules. It depends on nothing of the user interface of FerroUI.

The modules follow the projects of Splat:

Services are keyed by the type of the service, which may be a trait object (dyn IViewLocator), and are handed out as Rc<S>. Everything is single-threaded and reference counted, as the object model of FerroUI is: the locator, the resolvers and the global state of Splat are per thread (docs/porting/reactive.md, section 5.1).

Re-exports§

pub use application_performance_monitoring::DefaultFeatureUsageTrackingManager;
pub use application_performance_monitoring::DefaultFeatureUsageTrackingSession;
pub use application_performance_monitoring::EnableFeatureUsageTrackingExt;
pub use application_performance_monitoring::FeatureUsageTrackingSessionExt;
pub use application_performance_monitoring::FuncFeatureUsageTrackingManager;
pub use application_performance_monitoring::Guid;
pub use application_performance_monitoring::IEnableFeatureUsageTracking;
pub use application_performance_monitoring::IFeatureUsageTrackingManager;
pub use application_performance_monitoring::IFeatureUsageTrackingSession;
pub use application_performance_monitoring::IFeatureUsageTrackingSessionOf;
pub use application_performance_monitoring::IViewTracking;
pub use builder::AppBuilder;
pub use builder::IAppBuilder;
pub use builder::IAppInstance;
pub use builder::IModule;
pub use builder::ModuleExt;
pub use builder::SplatBuilderExt;
pub use logging::ActionLogger;
pub use logging::ConsoleLogger;
pub use logging::DebugLogger;
pub use logging::DefaultLogManager;
pub use logging::FullLoggerExt;
pub use logging::FuncLogManager;
pub use logging::IAllocationFreeErrorLogger;
pub use logging::IAllocationFreeLogger;
pub use logging::IEnableLogger;
pub use logging::IFullLogger;
pub use logging::ILogManager;
pub use logging::ILogger;
pub use logging::IStaticFullLogger;
pub use logging::LogHost;
pub use logging::LogLevel;
pub use logging::LogManagerExt;
pub use logging::LoggingException;
pub use logging::MemoizingMRUCache;
pub use logging::NullLogger;
pub use logging::SplatLogManagerModule;
pub use logging::SplatLoggerModule;
pub use logging::StaticFullLogger;
pub use logging::StaticFullLoggerExt;
pub use logging::WrappingFullLogger;
pub use logging::WrappingLogLevelLogger;
pub use logging::WrappingPrefixLogger;
pub use mode_detection::DefaultModeDetector;
pub use mode_detection::IModeDetector;
pub use mode_detection::Mode;
pub use mode_detection::ModeDetector;
pub use service_location::AppLocator;
pub use service_location::DependencyResolverMixins;
pub use service_location::ErasedService;
pub use service_location::GlobalGenericFirstDependencyResolver;
pub use service_location::IDependencyResolver;
pub use service_location::IMutableDependencyResolver;
pub use service_location::IReadonlyDependencyResolver;
pub use service_location::InstanceGenericFirstDependencyResolver;
pub use service_location::LazyDisposal;
pub use service_location::Locator;
pub use service_location::ModernDependencyResolver;
pub use service_location::MutableDependencyResolverExt;
pub use service_location::ReadonlyDependencyResolverExt;
pub use service_location::RegistrationCallback;
pub use service_location::ResolverMixins;
pub use service_location::ServiceFactory;
pub use service_location::ServiceLocationInitializationExt;
pub use service_location::ServiceType;

Modules§

application_performance_monitoring
Feature usage tracking (Splat/ApplicationPerformanceMonitoring): the interfaces that the adapters of monitoring services implement, and the default implementation, which logs.
builder
The application builder: Splat.Core’s IAppBuilder, IAppInstance and IModule, and Splat.Builder’s AppBuilder and SplatBuilderExtensions.
logging
Logging (Splat.Logging): the logger interfaces, the loggers Splat ships, the log managers that hand out a logger per type, IEnableLogger and LogHost.
mode_detection
Mode detection (Splat/ModeDetection): whether the code runs under a unit test runner.
service_location
Service location (Splat.Core/ServiceLocation and Splat/ServiceLocation): the interfaces of a dependency resolver, the three resolvers of Splat, the locator that holds the current one (AppLocator, Locator) and the mixins over them.