mediabus-0.3.2.0: src/Data/MediaBus/Basics/VectorExtra.hs
-- | Dubious utilities for 'Vector'
module Data.MediaBus.Basics.VectorExtra
( castedLength
) where
import Data.Vector.Storable as V
-- * Vector casting
-- | Calculate the number of elements that would fit into the given 'Vector'
-- if it were 'unsafeCast'ed to a vector of elements defined by the first argument.
castedLength
:: forall a b proxy.
(Storable a, Storable b)
=> proxy a -> Vector b -> Int
castedLength _ !v = V.length (unsafeCast v :: Vector a)