use std::cmp::Ordering; use std::ops::DerefMut; use crate::use_memo; use dioxus_signals::{ReadOnlySignal, Signal}; pub fn use_sorted( collection: impl FnMut() -> Signal, ) -> ReadOnlySignal> // pub fn use_sorted(iterable: impl FnMut() -> Signal) -> ReadOnlySignal // where // S: Into>, // T: Ord, // I: DerefMut + Clone + PartialEq, { use_memo(move || { unimplemented!() // let mut iterable = collection(); // iterable.sort(); // iterable }) // let iterable = iterable.into(); // // use_memo(f) // create_memo(move |_| { // let mut iterable = iterable.get(); // iterable.sort(); // iterable // }) // .into() } // /// Version of [`use_sorted`] with a compare function. // pub fn use_sorted_by(iterable: S, cmp_fn: F) -> Signal // where // S: Into>, // I: DerefMut + Clone + PartialEq, // F: FnMut(&T, &T) -> Ordering + Clone + 'static, // { // let iterable = iterable.into(); // create_memo(move |_| { // let mut iterable = iterable.get(); // iterable.sort_by(cmp_fn.clone()); // iterable // }) // .into() // } // /// Version of [`use_sorted`] by key. // pub fn use_sorted_by_key(iterable: S, key_fn: F) -> Signal // where // S: Into>, // I: DerefMut + Clone + PartialEq, // K: Ord, // F: FnMut(&T) -> K + Clone + 'static, // { // let iterable = iterable.into(); // create_memo(move |_| { // let mut iterable = iterable.get(); // iterable.sort_by_key(key_fn.clone()); // iterable // }) // .into() // }