1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//! Reactive state management for WinRT-XAML applications.
//!
//! This module provides a Rust-idiomatic approach to data binding and reactive UI updates.
//! Instead of traditional XAML INotifyPropertyChanged, we use observable properties and
//! collections that automatically notify subscribers when values change.
//!
//! # Features
//!
//! - **Property<T>**: Observable value that notifies subscribers on change
//! - **ObservableCollection<T>**: Observable vector with change notifications
//! - **Computed<T>**: Derived values that update automatically
//! - Thread-safe by default using Arc<Mutex<_>>
//!
//! # Example
//!
//! ```rust,no_run
//! use winrt_xaml::reactive::Property;
//! use winrt_xaml::prelude::*;
//!
//! # fn main() -> Result<()> {
//! // Create reactive property
//! let count = Property::new(0);
//!
//! // Create UI
//! let text = XamlTextBlock::new()?;
//!
//! // Bind text to count property
//! count.subscribe({
//! let text = text.clone();
//! move |value| {
//! let _ = text.set_text(&format!("Count: {}", value));
//! }
//! });
//!
//! // Update count (automatically updates UI)
//! count.set(5);
//! # Ok(())
//! # }
//! ```
pub use Property;
pub use ;
pub use Computed;
use ;
/// A subscriber callback that receives value updates.
pub type Subscriber<T> = ;
/// Unique identifier for subscribers.
;