hsqml-0.3.6.1: Haskell binding for Qt Quick
Safe HaskellSafe-Inferred
LanguageGHC2021

Graphics.QML.Marshal

Description

Type classs and instances for marshalling values between Haskell and QML.

Synopsis

Marshalling Type-class

class Marshal t where Source #

The class Marshal allows Haskell values to be marshalled to and from the QML environment.

Associated Types

type MarshalMode t c d Source #

The MarshalMode associated type family specifies the marshalling capabilities offered by the instance. c indicates the capability being queried. d is dummy parameter which allows certain instances to type check.

Methods

marshaller :: MarshallerFor t Source #

Yields the Marshaller for the type t.

Instances

Instances details
Marshal Int32 Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode Int32 c d Source #

Methods

marshaller :: MarshallerFor Int32 Source #

Marshal OpenGLDelegate Source # 
Instance details

Defined in Graphics.QML.Canvas

Associated Types

type MarshalMode OpenGLDelegate c d Source #

Methods

marshaller :: MarshallerFor OpenGLDelegate Source #

Marshal AnyObjRef Source # 
Instance details

Defined in Graphics.QML.Internal.Objects

Associated Types

type MarshalMode AnyObjRef c d Source #

Methods

marshaller :: MarshallerFor AnyObjRef Source #

Marshal Ignored Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode Ignored c d Source #

Methods

marshaller :: MarshallerFor Ignored Source #

Marshal Text Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode Text c d Source #

Methods

marshaller :: MarshallerFor Text Source #

Marshal () Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

Associated Types

type MarshalMode () c d Source #

Methods

marshaller :: MarshallerFor () Source #

Marshal Bool Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode Bool c d Source #

Methods

marshaller :: MarshallerFor Bool Source #

Marshal Double Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode Double c d Source #

Methods

marshaller :: MarshallerFor Double Source #

Marshal Int Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode Int c d Source #

Methods

marshaller :: MarshallerFor Int Source #

Typeable tt => Marshal (ObjRef tt) Source # 
Instance details

Defined in Graphics.QML.Internal.Objects

Associated Types

type MarshalMode (ObjRef tt) c d Source #

Methods

marshaller :: MarshallerFor (ObjRef tt) Source #

Marshal a => Marshal (Maybe a) Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode (Maybe a) c d Source #

Methods

marshaller :: MarshallerFor (Maybe a) Source #

Marshal a => Marshal [a] Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode [a] c d Source #

Methods

marshaller :: MarshallerFor [a] Source #

type family ModeBidi c Source #

MarshalMode for non-object types with bidirectional marshalling.

Instances

Instances details
type ModeBidi ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeBidi ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeBidi ICanReturnTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeBidi IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeBidi IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type family ModeFrom c Source #

MarshalMode for non-object types with from-only marshalling.

Instances

Instances details
type ModeFrom ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeFrom ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeFrom ICanReturnTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeFrom IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeFrom IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type family ModeTo c Source #

MarshalMode for non-object types with to-only marshalling.

Instances

Instances details
type ModeTo ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeTo ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeTo ICanReturnTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeTo IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeTo IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type family ModeRetVoid c Source #

MarshalMode for void in method returns.

type family ModeObjBidi a c Source #

MarshalMode for object types with bidirectional marshalling.

Instances

Instances details
type ModeObjBidi a ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjBidi a ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjBidi a ICanReturnTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjBidi a IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjBidi a IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type family ModeObjFrom a c Source #

MarshalMode for object types with from-only marshalling.

Instances

Instances details
type ModeObjFrom a ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjFrom a ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjFrom a ICanReturnTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjFrom a IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjFrom a IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type family ModeObjTo a c Source #

MarshalMode for object types with to-only marshalling.

Instances

Instances details
type ModeObjTo a ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjTo a ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjTo a ICanReturnTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjTo a IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjTo a IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

data Yes Source #

Type value indicating a capability is supported.

type CanGetFrom t = MarshalMode t ICanGetFrom () Source #

Type function equal to Yes if the marshallable type t supports being received from QML.

data ICanGetFrom Source #

Type index into MarshalMode for querying if the mode supports receiving values from QML.

Instances

Instances details
type ModeBidi ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeFrom ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeRetVoid ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeTo ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjBidi a ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjFrom a ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjTo a ICanGetFrom Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type MarshalMode (Maybe a) ICanGetFrom d Source # 
Instance details

Defined in Graphics.QML.Marshal

type MarshalMode [a] ICanGetFrom d Source # 
Instance details

Defined in Graphics.QML.Marshal

type CanPassTo t = MarshalMode t ICanPassTo () Source #

Type function equal to Yes if the marshallable type t supports being passed to QML.

data ICanPassTo Source #

Type index into MarshalMode for querying if the mode supports passing values to QML.

Instances

Instances details
type ModeBidi ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeFrom ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeRetVoid ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeTo ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjBidi a ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjFrom a ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjTo a ICanPassTo Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type MarshalMode (Maybe a) ICanPassTo d Source # 
Instance details

Defined in Graphics.QML.Marshal

type MarshalMode [a] ICanPassTo d Source # 
Instance details

Defined in Graphics.QML.Marshal

type CanReturnTo t = MarshalMode t ICanReturnTo () Source #

Type function equal to Yes if the marshallable type t supports being returned to QML.

data ICanReturnTo Source #

Type index into MarshalMode for querying if the mode supports returning values to QML.

type IsObjType t = MarshalMode t IIsObjType () Source #

Type function equal to Yes if the marshallable type t is an object.

data IIsObjType Source #

Type index into MarshalMode for querying if the mode supports an object type.

Instances

Instances details
type ModeBidi IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeFrom IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeRetVoid IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeTo IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjBidi a IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjFrom a IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjTo a IIsObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type MarshalMode (Maybe a) IIsObjType d Source # 
Instance details

Defined in Graphics.QML.Marshal

type MarshalMode [a] IIsObjType d Source # 
Instance details

Defined in Graphics.QML.Marshal

type GetObjType t = MarshalMode t IGetObjType () Source #

Type function which returns the type encapsulated by the object handles used by the marshallable type t.

data IGetObjType Source #

Type index into MarshalMode for querying the type encapsulated by the mode's object handles.

Instances

Instances details
type ModeBidi IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeFrom IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeRetVoid IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeTo IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjBidi a IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjFrom a IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type ModeObjTo a IGetObjType Source # 
Instance details

Defined in Graphics.QML.Internal.Marshal

type MarshalMode (Maybe a) IGetObjType d Source # 
Instance details

Defined in Graphics.QML.Marshal

type MarshalMode [a] IGetObjType d Source # 
Instance details

Defined in Graphics.QML.Marshal

data Marshaller t u v w x y Source #

Encapsulates the functionality to needed to implement an instance of Marshal so that such instances can be defined without access to implementation details.

Data Types

data Ignored Source #

Represents an argument whose value is ignored.

Constructors

Ignored 

Instances

Instances details
Marshal Ignored Source # 
Instance details

Defined in Graphics.QML.Marshal

Associated Types

type MarshalMode Ignored c d Source #

Methods

marshaller :: MarshallerFor Ignored Source #

type MarshalMode Ignored c d Source # 
Instance details

Defined in Graphics.QML.Marshal

Custom Marshallers

bidiMarshallerIO :: forall a b. (Marshal a, CanGetFrom a ~ Yes, CanPassTo a ~ Yes) => (a -> IO b) -> (b -> IO a) -> BidiMarshaller a b Source #

Provides a bidirectional Marshaller which allows you to define an instance of Marshal for your own type b in terms of another marshallable type a. Type b should have a MarshalMode of ModeObjBidi or ModeBidi depending on whether a was an object type or not.

bidiMarshaller :: forall a b. (Marshal a, CanGetFrom a ~ Yes, CanPassTo a ~ Yes) => (a -> b) -> (b -> a) -> BidiMarshaller a b Source #

Variant of bidiMarshallerIO where the conversion functions between types a and b do not live in the IO monad.

fromMarshallerIO :: forall a b. (Marshal a, CanGetFrom a ~ Yes) => (a -> IO b) -> FromMarshaller a b Source #

Provides a "from" Marshaller which allows you to define an instance of Marshal for your own type b in terms of another marshallable type a. Type b should have a MarshalMode of ModeObjFrom or ModeFrom depending on whether a was an object type or not.

fromMarshaller :: forall a b. (Marshal a, CanGetFrom a ~ Yes) => (a -> b) -> FromMarshaller a b Source #

Variant of fromMarshallerIO where the conversion function between types a and b does not live in the IO monad.

toMarshallerIO :: forall a b. (Marshal a, CanPassTo a ~ Yes) => (b -> IO a) -> ToMarshaller a b Source #

Provides a "to" Marshaller which allows you to define an instance of Marshal for your own type b in terms of another marshallable type a. Type b should have a MarshalMode of ModeObjTo or ModeTo depending on whether a was an object type or not.

toMarshaller :: forall a b. (Marshal a, CanPassTo a ~ Yes) => (b -> a) -> ToMarshaller a b Source #

Variant of toMarshallerIO where the conversion function between types a and b does not live in the IO monad.

Orphan instances

Marshal Int32 Source # 
Instance details

Associated Types

type MarshalMode Int32 c d Source #

Methods

marshaller :: MarshallerFor Int32 Source #

Marshal Text Source # 
Instance details

Associated Types

type MarshalMode Text c d Source #

Methods

marshaller :: MarshallerFor Text Source #

Marshal Bool Source # 
Instance details

Associated Types

type MarshalMode Bool c d Source #

Methods

marshaller :: MarshallerFor Bool Source #

Marshal Double Source # 
Instance details

Associated Types

type MarshalMode Double c d Source #

Methods

marshaller :: MarshallerFor Double Source #

Marshal Int Source # 
Instance details

Associated Types

type MarshalMode Int c d Source #

Methods

marshaller :: MarshallerFor Int Source #

Marshal a => Marshal (Maybe a) Source # 
Instance details

Associated Types

type MarshalMode (Maybe a) c d Source #

Methods

marshaller :: MarshallerFor (Maybe a) Source #

Marshal a => Marshal [a] Source # 
Instance details

Associated Types

type MarshalMode [a] c d Source #

Methods

marshaller :: MarshallerFor [a] Source #