Introduced a helper function to format Delphi TDateTime values into
human-readable strings.
Updated the data display to render the latest 200 data points as a chart
instead of a list.
This change improves the visualization of market data by providing a
graphical representation of recent price movements.
The `DataServer` struct's generic type `T` now requires the `Sync` trait
bound. This allows `DataServer` instances to be safely shared across
multiple threads.
Additionally, data loading from zip archives has been moved to a
`spawn_blocking` task to avoid blocking the main Tokio runtime thread.
This improves responsiveness when dealing with large data files.
Adds `Send + 'static` bounds to `R` in `read_from_zip` and moves the
file
operations to a Tokio blocking task. This prevents blocking the async
runtime
when reading large zip archives.
Also, updates the `load_symbol_async` function to handle data loading
concurrently and stream chunks of data back to the UI. The `loaded_data`
field is changed from `Option<Arc<Vec<DataPoint<OhlcItem>>>>` to
`Vec<DataPoint<OhlcItem>>`.
The sender and receiver for data updates are also adjusted to handle
streaming
chunks.
This commit introduces the `eframe` dependency and sets up the
foundational structure for a graphical user interface. It includes the
necessary imports for `egui` and prepares the application to render UI
elements.