module YamlUnscrambler.Util.Vector where

import Data.Vector
import YamlUnscrambler.Prelude as Prelude hiding (lookup)

lookupFirst :: [Int] -> Vector a -> Maybe (Int, a)
lookupFirst :: [Int] -> Vector a -> Maybe (Int, a)
lookupFirst [Int]
keys Vector a
vector =
  First (Int, a) -> Maybe (Int, a)
forall a. First a -> Maybe a
getFirst ((Int -> First (Int, a)) -> [Int] -> First (Int, a)
forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
Prelude.foldMap (\Int
k -> Maybe (Int, a) -> First (Int, a)
forall a. Maybe a -> First a
First ((a -> (Int, a)) -> Maybe a -> Maybe (Int, a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Int
k,) (Vector a
vector Vector a -> Int -> Maybe a
forall a. Vector a -> Int -> Maybe a
!? Int
k))) [Int]
keys)