Commit 55e38627 authored by James Laver's avatar James Laver Committed by Alexandre Delanoë

Add invertOrdering and _unit to Gargantext.Utils

parent 1efcb86d
module Gargantext.Utils where module Gargantext.Utils where
import Prelude import Prelude
import Data.Ordering (Ordering(..))
import Data.Newtype (class Newtype, unwrap, wrap) import Data.Newtype (class Newtype, unwrap, wrap)
import Data.Set as Set import Data.Set as Set
import Data.Set (Set) import Data.Set (Set)
import Data.Lens (Lens', lens)
setterv :: forall nt record field. Newtype nt record => (record -> field -> record) -> field -> nt -> nt setterv :: forall nt record field. Newtype nt record => (record -> field -> record) -> field -> nt -> nt
setterv fn v t = (setter (flip fn v) t) setterv fn v t = (setter (flip fn v) t)
...@@ -20,3 +21,13 @@ toggleSet :: forall a. Ord a => a -> Set a -> Set a ...@@ -20,3 +21,13 @@ toggleSet :: forall a. Ord a => a -> Set a -> Set a
toggleSet a s toggleSet a s
| Set.member a s = Set.delete a s | Set.member a s = Set.delete a s
| otherwise = Set.insert a s | otherwise = Set.insert a s
-- Default sort order is ascending, we may want descending
invertOrdering :: Ordering -> Ordering
invertOrdering LT = GT
invertOrdering GT = LT
invertOrdering EQ = EQ
-- A lens that always returns unit
_unit :: forall s. Lens' s Unit
_unit = lens (\_ -> unit) (\s _ -> s)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment