module Memfd.SupportedHugeTLBSizes where

import Data.List qualified as List
import Data.Maybe (isJust)
import Memfd.CreateFlags qualified as Flags
import Memfd.HugeTLBSizeType (HugeTLBSize)
import Prelude (enumFrom, minBound)

{-| List of hugetlb sizes that are supported by your platform
-}
supportedHugeTLBSizes :: [HugeTLBSize]
supportedHugeTLBSizes :: [HugeTLBSize]
supportedHugeTLBSizes =
    forall a. (a -> Bool) -> [a] -> [a]
List.filter (\HugeTLBSize
x -> forall a. Maybe a -> Bool
isJust (HugeTLBSize -> Maybe CreateFlags
Flags.hugeTLBSize HugeTLBSize
x)) (forall a. Enum a => a -> [a]
enumFrom forall a. Bounded a => a
minBound)