filepath-1.4.200.1: Library for manipulating FilePaths in a cross platform way.
Safe HaskellNone
LanguageHaskell2010

System.OsString.Windows

Description

Deprecated: Use System.OsString.Posix from os-string >= 2.0.0 package instead. This module will be removed in filepath >= 1.5.

Synopsis

Documentation

toChar :: WindowsChar -> Char Source #

Converts back to a unicode codepoint (total).

pack :: [WindowsChar] -> WindowsString Source #

Pack a list of platform words to a platform string.

Note that using this in conjunction with unsafeFromChar to convert from [Char] to platform string is probably not what you want, because it will truncate unicode code points.

unpack :: WindowsString -> [WindowsChar] Source #

Unpack a platform string to a list of platform words.

unsafeFromChar :: Char -> WindowsChar Source #

Truncates to 2 octets.

encodeUtf :: MonadThrow m => String -> m WindowsString Source #

Partial unicode friendly encoding.

This encodes as UTF16-LE (strictly), which is a pretty good guess.

Throws an EncodingException if encoding fails.

encodeWith :: TextEncoding -> String -> Either EncodingException WindowsString Source #

Encode a String with the specified encoding.

encodeFS :: String -> IO WindowsString Source #

This mimics the behavior of the base library when doing filesystem operations, which does permissive UTF-16 encoding, where coding errors generate Chars in the surrogate range.

The reason this is in IO is because it unifies with the Posix counterpart, which does require IO. This is safe to unsafePerformIO/unsafeDupablePerformIO.

decodeUtf :: MonadThrow m => WindowsString -> m String Source #

Partial unicode friendly decoding.

This decodes as UTF16-LE (strictly), which is a pretty good.

Throws a EncodingException if decoding fails.

decodeWith :: TextEncoding -> WindowsString -> Either EncodingException String Source #

Decode a WindowsString with the specified encoding.

The String is forced into memory to catch all exceptions.

decodeFS :: WindowsString -> IO String Source #

Like decodeUtf, except this mimics the behavior of the base library when doing filesystem operations, which does permissive UTF-16 encoding, where coding errors generate Chars in the surrogate range.

The reason this is in IO is because it unifies with the Posix counterpart, which does require IO. unsafePerformIO/unsafeDupablePerformIO are safe, however.

pstr :: QuasiQuoter Source #

QuasiQuote a WindowsString. This accepts Unicode characters and encodes as UTF-16LE on windows.

data WindowsString Source #

Commonly used windows string as wide character bytes.

Instances

Instances details
Monoid WindowsString Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Semigroup WindowsString Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Generic WindowsString Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Associated Types

type Rep WindowsString 
Instance details

Defined in System.OsString.Internal.Types.Hidden

type Rep WindowsString = D1 ('MetaData "WindowsString" "System.OsString.Internal.Types.Hidden" "filepath-1.4.200.1-4fdf" 'True) (C1 ('MetaCons "WindowsString" 'PrefixI 'True) (S1 ('MetaSel ('Just "getWindowsString") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortByteString)))
Show WindowsString Source #

Decodes as UCS-2.

Instance details

Defined in System.OsString.Internal.Types.Hidden

NFData WindowsString Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Methods

rnf :: WindowsString -> () Source #

Eq WindowsString Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Ord WindowsString Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Lift WindowsString Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Methods

lift :: Quote m => WindowsString -> m Exp Source #

liftTyped :: forall (m :: Type -> Type). Quote m => WindowsString -> Code m WindowsString Source #

type Rep WindowsString Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

type Rep WindowsString = D1 ('MetaData "WindowsString" "System.OsString.Internal.Types.Hidden" "filepath-1.4.200.1-4fdf" 'True) (C1 ('MetaCons "WindowsString" 'PrefixI 'True) (S1 ('MetaSel ('Just "getWindowsString") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortByteString)))

data WindowsChar Source #

Instances

Instances details
Generic WindowsChar Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Associated Types

type Rep WindowsChar 
Instance details

Defined in System.OsString.Internal.Types.Hidden

type Rep WindowsChar = D1 ('MetaData "WindowsChar" "System.OsString.Internal.Types.Hidden" "filepath-1.4.200.1-4fdf" 'True) (C1 ('MetaCons "WindowsChar" 'PrefixI 'True) (S1 ('MetaSel ('Just "getWindowsChar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))
Show WindowsChar Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

NFData WindowsChar Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Methods

rnf :: WindowsChar -> () Source #

Eq WindowsChar Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

Ord WindowsChar Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

type Rep WindowsChar Source # 
Instance details

Defined in System.OsString.Internal.Types.Hidden

type Rep WindowsChar = D1 ('MetaData "WindowsChar" "System.OsString.Internal.Types.Hidden" "filepath-1.4.200.1-4fdf" 'True) (C1 ('MetaCons "WindowsChar" 'PrefixI 'True) (S1 ('MetaSel ('Just "getWindowsChar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16)))

fromBytes :: MonadThrow m => ByteString -> m WindowsString Source #

Constructs a platform string from a ByteString.

This ensures valid UCS-2LE. Note that this doesn't expand Word8 to Word16 on windows, so you may get invalid UTF-16.

Throws EncodingException on invalid UCS-2LE (although unlikely).