1{-# LANGUAGE ForeignFunctionInterface, UnliftedFFITypes, JavaScriptFFI,
2 UnboxedTuples, DeriveDataTypeable, GHCForeignImportPrim,
3 MagicHash, FlexibleInstances, BangPatterns, Rank2Types, CPP #-}
5{- | Conversion between 'Data.Text.Text' and 'Data.JSString.JSString'
9-- Moved from ghcjs-base with text-jsstring support.
11module Data.JSString.Text
15 , lazyTextFromJSString
26import qualified Data.Text as T
27import qualified Data.Text.Internal as T
28import qualified Data.Text.Lazy as TL
29import Data.JSString (JSString)
31import GHCJS.Marshal.Pure
34textToJSString :: T.Text -> JSString
35textToJSString (T.Text txt) = txt
36{-# INLINE textToJSString #-}
38textFromJSString :: JSString -> T.Text
39textFromJSString = T.Text
40{-# INLINE textFromJSString #-}
42lazyTextToJSString :: TL.Text -> JSString
43lazyTextToJSString t = rnf t `seq` js_lazyTextToString (unsafeCoerce t)
44{-# INLINE lazyTextToJSString #-}
46lazyTextFromJSString :: JSString -> TL.Text
47lazyTextFromJSString = TL.fromStrict . textFromJSString
48{-# INLINE lazyTextFromJSString #-}
50-- | returns the empty Text if not a string
51textFromJSVal :: JSVal -> T.Text
52textFromJSVal v = T.Text $ pFromJSVal v -- TODO check if val is a string?
53{-# INLINE textFromJSVal #-}
55-- | returns the empty Text if not a string
56lazyTextFromJSVal :: JSVal -> TL.Text
57lazyTextFromJSVal = TL.fromStrict . textFromJSVal
58{-# INLINE lazyTextFromJSVal #-}
60-- ----------------------------------------------------------------------------
62foreign import javascript unsafe
64 js_lazyTextToString :: Any -> JSString
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list