borsh-0.2.0: Implementation of BORSH serialisation
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.FixedSizeArray

Contents

Description

Fixed size arrays

Intended for qualified import

import Data.FixedSizeArray (FixedSizeArray)
import qualified Data.FixedSizeArray as FSA
Synopsis

Documentation

data FixedSizeArray (n :: Nat) (a :: Type) Source #

Fixed size arrays

FixedSizeArray n a is the Haskell counter-part to the Rust type [A; N].

NOTE: For convenience, this is an instance of Vector, but the invariant that the length of the vector should never change is not currently checked.

Instances

Instances details
Foldable (FixedSizeArray n) Source # 
Instance details

Defined in Data.FixedSizeArray

Methods

fold :: Monoid m => FixedSizeArray n m -> m #

foldMap :: Monoid m => (a -> m) -> FixedSizeArray n a -> m #

foldMap' :: Monoid m => (a -> m) -> FixedSizeArray n a -> m #

foldr :: (a -> b -> b) -> b -> FixedSizeArray n a -> b #

foldr' :: (a -> b -> b) -> b -> FixedSizeArray n a -> b #

foldl :: (b -> a -> b) -> b -> FixedSizeArray n a -> b #

foldl' :: (b -> a -> b) -> b -> FixedSizeArray n a -> b #

foldr1 :: (a -> a -> a) -> FixedSizeArray n a -> a #

foldl1 :: (a -> a -> a) -> FixedSizeArray n a -> a #

toList :: FixedSizeArray n a -> [a] #

null :: FixedSizeArray n a -> Bool #

length :: FixedSizeArray n a -> Int #

elem :: Eq a => a -> FixedSizeArray n a -> Bool #

maximum :: Ord a => FixedSizeArray n a -> a #

minimum :: Ord a => FixedSizeArray n a -> a #

sum :: Num a => FixedSizeArray n a -> a #

product :: Num a => FixedSizeArray n a -> a #

KnownNat n => Traversable (FixedSizeArray n) Source # 
Instance details

Defined in Data.FixedSizeArray

Methods

traverse :: Applicative f => (a -> f b) -> FixedSizeArray n a -> f (FixedSizeArray n b) #

sequenceA :: Applicative f => FixedSizeArray n (f a) -> f (FixedSizeArray n a) #

mapM :: Monad m => (a -> m b) -> FixedSizeArray n a -> m (FixedSizeArray n b) #

sequence :: Monad m => FixedSizeArray n (m a) -> m (FixedSizeArray n a) #

Functor (FixedSizeArray n) Source # 
Instance details

Defined in Data.FixedSizeArray

Methods

fmap :: (a -> b) -> FixedSizeArray n a -> FixedSizeArray n b #

(<$) :: a -> FixedSizeArray n b -> FixedSizeArray n a #

Vector (FixedSizeArray n) a Source # 
Instance details

Defined in Data.FixedSizeArray

Show a => Show (FixedSizeArray n a) Source # 
Instance details

Defined in Data.FixedSizeArray

(KnownNat n, BorshSize a) => BorshSize (FixedSizeArray n a) Source # 
Instance details

Defined in Codec.Borsh.Class

Associated Types

type StaticBorshSize (FixedSizeArray n a) :: KnownSize Source #

(FromBorsh a, KnownNat n) => FromBorsh (FixedSizeArray n a) Source # 
Instance details

Defined in Codec.Borsh.Class

(KnownNat n, ToBorsh a) => ToBorsh (FixedSizeArray n a) Source # 
Instance details

Defined in Codec.Borsh.Class

Eq a => Eq (FixedSizeArray n a) Source # 
Instance details

Defined in Data.FixedSizeArray

Ord a => Ord (FixedSizeArray n a) Source # 
Instance details

Defined in Data.FixedSizeArray

type Mutable (FixedSizeArray n) Source # 
Instance details

Defined in Data.FixedSizeArray

type StaticBorshSize (FixedSizeArray n a) Source # 
Instance details

Defined in Codec.Borsh.Class

data MFixedSizeArray (n :: Nat) s (a :: Type) Source #

Mutable fixed-size arrays

Instances

Instances details
MVector (MFixedSizeArray n) a Source # 
Instance details

Defined in Data.FixedSizeArray

Construction

fromList :: forall n a. KnownNat n => [a] -> FixedSizeArray n a Source #

Construct FixedSizeArray from list of unknown size

Throws an exception if the list does not have the right number of elements.

fromArray :: forall n a. KnownNat n => Vector a -> FixedSizeArray n a Source #

Construct FixedSizeArray from array of unknown size

Throws an exception if the array does not have the right size.

fromMArray :: forall n s a. KnownNat n => MVector s a -> MFixedSizeArray n s a Source #

Construct FixedSizeArray from mutable array of unknown size

Throws an exception if the array does not have the right size.

new :: forall m n a. (PrimMonad m, KnownNat n) => m (MFixedSizeArray n (PrimState m) a) Source #

Construct new mutable array of the appropriate size