ferroui_dynamic_data/
dynamic_data_options.rs1use crate::binding::{BindingOptions, SortAndBindOptions};
8use std::cell::{Cell, RefCell};
9
10ferroui_system::ferro_thread_local! {
11 static BINDING: Cell<BindingOptions> = Cell::new(BindingOptions::new(BindingOptions::DEFAULT_RESET_THRESHOLD));
12 static SORT_AND_BIND: RefCell<SortAndBindOptions> = RefCell::new(SortAndBindOptions::default());
13}
14
15pub struct DynamicDataOptions;
17
18impl DynamicDataOptions {
19 pub fn binding() -> BindingOptions {
21 BINDING.with(Cell::get)
22 }
23
24 pub fn set_binding(options: BindingOptions) {
26 BINDING.with(|binding| binding.set(options));
27 }
28
29 pub fn sort_and_bind() -> SortAndBindOptions {
31 SORT_AND_BIND.with(|options| options.borrow().clone())
32 }
33
34 pub fn set_sort_and_bind(options: SortAndBindOptions) {
36 SORT_AND_BIND.with(|current| *current.borrow_mut() = options);
37 }
38}