use crate::binding::{BindingOptions, SortAndBindOptions};
use std::cell::{Cell, RefCell};
ferroui_system::ferro_thread_local! {
static BINDING: Cell<BindingOptions> = Cell::new(BindingOptions::new(BindingOptions::DEFAULT_RESET_THRESHOLD));
static SORT_AND_BIND: RefCell<SortAndBindOptions> = RefCell::new(SortAndBindOptions::default());
}
pub struct DynamicDataOptions;
impl DynamicDataOptions {
pub fn binding() -> BindingOptions {
BINDING.with(Cell::get)
}
pub fn set_binding(options: BindingOptions) {
BINDING.with(|binding| binding.set(options));
}
pub fn sort_and_bind() -> SortAndBindOptions {
SORT_AND_BIND.with(|options| options.borrow().clone())
}
pub fn set_sort_and_bind(options: SortAndBindOptions) {
SORT_AND_BIND.with(|current| *current.borrow_mut() = options);
}
}