haskell-gi-0.24.5: Generate Haskell bindings for GObject Introspection capable libraries
Safe HaskellNone
LanguageHaskell2010

Data.GI.CodeGen.ModulePath

Description

Abstract representation for paths into modules.

Synopsis

Documentation

newtype ModulePath Source #

A path to a module.

Constructors

ModulePath 

Fields

Instances

Instances details
Eq ModulePath Source # 
Instance details

Defined in Data.GI.CodeGen.ModulePath

Methods

(==) :: ModulePath -> ModulePath -> Bool

(/=) :: ModulePath -> ModulePath -> Bool

Ord ModulePath Source # 
Instance details

Defined in Data.GI.CodeGen.ModulePath

Show ModulePath Source # 
Instance details

Defined in Data.GI.CodeGen.ModulePath

Methods

showsPrec :: Int -> ModulePath -> ShowS

show :: ModulePath -> String

showList :: [ModulePath] -> ShowS

IsString ModulePath Source #

Construct a ModulePath from a String.

Instance details

Defined in Data.GI.CodeGen.ModulePath

Methods

fromString :: String -> ModulePath

Semigroup ModulePath Source # 
Instance details

Defined in Data.GI.CodeGen.ModulePath

Methods

(<>) :: ModulePath -> ModulePath -> ModulePath #

sconcat :: NonEmpty ModulePath -> ModulePath

stimes :: Integral b => b -> ModulePath -> ModulePath

Monoid ModulePath Source # 
Instance details

Defined in Data.GI.CodeGen.ModulePath

toModulePath :: Text -> ModulePath Source #

Construct a path into the given GIR namespace. The given Text will be split along ".".

Examples

Expand
>>> dotModulePath (toModulePath "Foo")
"Foo"
>>> dotModulePath ("Foo" <> toModulePath "Bar.Baz")
"Foo.Bar.Baz"
>>> dotModulePath ("Foo" <> toModulePath "bar.baz")
"Foo.Bar.Baz"

(/.) :: ModulePath -> Text -> ModulePath Source #

Append the given component to the given module path.

Examples

Expand
>>> dotModulePath ("Foo" /. "Bar")
"Foo.Bar"

dotModulePath :: ModulePath -> Text Source #

Turn a module path into the corresponding dotted string. Note that the implementation ensures that the module names start with a capital letter.

Examples

Expand
>>> dotModulePath ("Foo" /. "Bar" /. "Baz")
"Foo.Bar.Baz"
>>> dotModulePath ("foo" /. "bar" /. "baz")
"Foo.Bar.Baz"