From aa7fd9918d9b4a575baf55646bc831171902dbff Mon Sep 17 00:00:00 2001 From: Kazu Yamamoto Date: Tue, 10 Sep 2024 15:13:43 +0900 Subject: [PATCH] removing a warning --- Network/HPACK/Table/RevIndex.hs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Network/HPACK/Table/RevIndex.hs b/Network/HPACK/Table/RevIndex.hs index 33a7a229..d7308c98 100644 --- a/Network/HPACK/Table/RevIndex.hs +++ b/Network/HPACK/Table/RevIndex.hs @@ -17,6 +17,8 @@ import qualified Data.Array as A import Data.Array.Base (unsafeAt) import Data.Function (on) import Data.IORef +import Data.List.NonEmpty (NonEmpty (..)) +import qualified Data.List.NonEmpty as NE import Data.Map.Strict (Map) import qualified Data.Map.Strict as M import Network.HTTP.Semantics @@ -64,15 +66,15 @@ staticRevIndex = A.array (minTokenIx, maxStaticTokenIx) $ map toEnt zs toEnt (k, xs) = (tokenIx $ toToken $ foldedCase k, m) where m = case xs of - [] -> error "staticRevIndex" - [("", i)] -> StaticEntry i Nothing - (_, i) : _ -> - let vs = M.fromList xs + ("", i) :| [] -> StaticEntry i Nothing + (_, i) :| _ -> + let vs = M.fromList $ NE.toList xs in StaticEntry i (Just vs) - zs = map extract $ groupBy ((==) `on` fst) lst + zs = map extract $ NE.groupBy ((==) `on` fst) lst where lst = zipWith (\(k, v) i -> (k, (v, i))) staticTableList $ map SIndex [1 ..] - extract xs = (fst (head xs), map snd xs) + + extract xs = (fst (NE.head xs), NE.map snd xs) {-# INLINE lookupStaticRevIndex #-} lookupStaticRevIndex