Skip to content

Commit d69a1e2

Browse files
committed
Add all casts/coercions
1 parent a9ae350 commit d69a1e2

File tree

7 files changed

+84
-49
lines changed

7 files changed

+84
-49
lines changed

src/Web/UIEvent/CompositionEvent.purs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
module Web.UIEvent.CompositionEvent where
22

3-
import Foreign (F, Foreign, unsafeReadTagged)
3+
import Data.Maybe (Maybe)
44
import Unsafe.Coerce (unsafeCoerce)
5-
import Web.Event.Types (Event)
5+
import Web.Event.Event (Event)
6+
import Web.Internal.FFI (unsafeReadProtoTagged)
67
import Web.UIEvent.UIEvent (UIEvent)
78

89
foreign import data CompositionEvent :: Type
910

10-
toEvent :: CompositionEvent -> Event
11-
toEvent = unsafeCoerce
11+
fromUIEvent :: UIEvent -> Maybe CompositionEvent
12+
fromUIEvent = unsafeReadProtoTagged "CompositionEvent"
13+
14+
fromEvent :: Event -> Maybe CompositionEvent
15+
fromEvent = unsafeReadProtoTagged "CompositionEvent"
1216

1317
toUIEvent :: CompositionEvent -> UIEvent
1418
toUIEvent = unsafeCoerce
1519

16-
read :: Foreign -> F CompositionEvent
17-
read = unsafeReadTagged "CompositionEvent"
20+
toEvent :: CompositionEvent -> Event
21+
toEvent = unsafeCoerce
1822

1923
foreign import data_ :: CompositionEvent -> String

src/Web/UIEvent/FocusEvent.purs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,35 @@
11
module Web.UIEvent.FocusEvent
22
( FocusEvent
3-
, toEvent
3+
, fromUIEvent
4+
, fromEvent
45
, toUIEvent
5-
, read
6+
, toEvent
67
, relatedTarget
78
) where
89

910
import Prelude
1011

1112
import Data.Maybe (Maybe)
1213
import Data.Nullable (Nullable, toMaybe)
13-
import Foreign (F, Foreign, unsafeReadTagged)
1414
import Unsafe.Coerce (unsafeCoerce)
15-
import Web.Event.Types (Event, EventTarget)
15+
import Web.Event.Event (Event)
16+
import Web.Event.EventTarget (EventTarget)
17+
import Web.Internal.FFI (unsafeReadProtoTagged)
1618
import Web.UIEvent.UIEvent (UIEvent)
1719

1820
foreign import data FocusEvent :: Type
1921

20-
toEvent :: FocusEvent -> Event
21-
toEvent = unsafeCoerce
22+
fromUIEvent :: UIEvent -> Maybe FocusEvent
23+
fromUIEvent = unsafeReadProtoTagged "FocusEvent"
24+
25+
fromEvent :: Event -> Maybe FocusEvent
26+
fromEvent = unsafeReadProtoTagged "FocusEvent"
2227

2328
toUIEvent :: FocusEvent -> UIEvent
2429
toUIEvent = unsafeCoerce
2530

26-
read :: Foreign -> F FocusEvent
27-
read = unsafeReadTagged "FocusEvent"
31+
toEvent :: FocusEvent -> Event
32+
toEvent = unsafeCoerce
2833

2934
foreign import _relatedTarget :: FocusEvent -> Nullable EventTarget
3035

src/Web/UIEvent/InputEvent.purs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
module Web.UIEvent.InputEvent where
22

3-
import Foreign (F, Foreign, unsafeReadTagged)
3+
import Data.Maybe (Maybe)
44
import Unsafe.Coerce (unsafeCoerce)
5-
import Web.Event.Types (Event)
5+
import Web.Event.Event (Event)
6+
import Web.Internal.FFI (unsafeReadProtoTagged)
67
import Web.UIEvent.UIEvent (UIEvent)
78

89
foreign import data InputEvent :: Type
910

10-
toEvent :: InputEvent -> Event
11-
toEvent = unsafeCoerce
11+
fromUIEvent :: UIEvent -> Maybe InputEvent
12+
fromUIEvent = unsafeReadProtoTagged "InputEvent"
13+
14+
fromEvent :: Event -> Maybe InputEvent
15+
fromEvent = unsafeReadProtoTagged "InputEvent"
1216

1317
toUIEvent :: InputEvent -> UIEvent
1418
toUIEvent = unsafeCoerce
1519

16-
read :: Foreign -> F InputEvent
17-
read = unsafeReadTagged "InputEvent"
20+
toEvent :: InputEvent -> Event
21+
toEvent = unsafeCoerce
1822

1923
foreign import data_ :: InputEvent -> String
2024

src/Web/UIEvent/KeyboardEvent.purs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414
-- |
1515
module Web.UIEvent.KeyboardEvent
1616
( KeyboardEvent
17-
, toEvent
17+
, fromUIEvent
18+
, fromEvent
1819
, toUIEvent
19-
, read
20+
, toEvent
2021
, key
2122
, code
2223
, locationIndex
@@ -38,21 +39,24 @@ import Prelude
3839
import Data.Enum (class BoundedEnum, class Enum, Cardinality(..), defaultPred, defaultSucc, toEnum)
3940
import Data.Maybe (Maybe(..), fromJust)
4041
import Effect (Effect)
41-
import Foreign (F, Foreign, unsafeReadTagged)
4242
import Unsafe.Coerce (unsafeCoerce)
43-
import Web.Event.Types (Event)
43+
import Web.Event.Event (Event)
44+
import Web.Internal.FFI (unsafeReadProtoTagged)
4445
import Web.UIEvent.UIEvent (UIEvent)
4546

4647
foreign import data KeyboardEvent :: Type
4748

48-
toEvent :: KeyboardEvent -> Event
49-
toEvent = unsafeCoerce
49+
fromUIEvent :: UIEvent -> Maybe KeyboardEvent
50+
fromUIEvent = unsafeReadProtoTagged "KeyboardEvent"
51+
52+
fromEvent :: Event -> Maybe KeyboardEvent
53+
fromEvent = unsafeReadProtoTagged "KeyboardEvent"
5054

5155
toUIEvent :: KeyboardEvent -> UIEvent
5256
toUIEvent = unsafeCoerce
5357

54-
read :: Foreign -> F KeyboardEvent
55-
read = unsafeReadTagged "KeyboardEvent"
58+
toEvent :: KeyboardEvent -> Event
59+
toEvent = unsafeCoerce
5660

5761
-- | A non-empty Unicode character string containing the printable representation
5862
-- | of the key, if available.

src/Web/UIEvent/MouseEvent.purs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
module Web.UIEvent.MouseEvent
22
( MouseEvent
3-
, toEvent
3+
, fromUIEvent
4+
, fromEvent
45
, toUIEvent
5-
, read
6+
, toEvent
67
, screenX
78
, screenY
89
, clientX
@@ -24,21 +25,25 @@ import Prelude
2425
import Data.Maybe (Maybe)
2526
import Data.Nullable (Nullable, toMaybe)
2627
import Effect (Effect)
27-
import Foreign (F, Foreign, unsafeReadTagged)
2828
import Unsafe.Coerce (unsafeCoerce)
29-
import Web.Event.Types (Event, EventTarget)
29+
import Web.Event.Event (Event)
30+
import Web.Event.EventTarget (EventTarget)
31+
import Web.Internal.FFI (unsafeReadProtoTagged)
3032
import Web.UIEvent.UIEvent (UIEvent)
3133

3234
foreign import data MouseEvent :: Type
3335

34-
toEvent :: MouseEvent -> Event
35-
toEvent = unsafeCoerce
36+
fromUIEvent :: UIEvent -> Maybe MouseEvent
37+
fromUIEvent = unsafeReadProtoTagged "MouseEvent"
38+
39+
fromEvent :: Event -> Maybe MouseEvent
40+
fromEvent = unsafeReadProtoTagged "MouseEvent"
3641

3742
toUIEvent :: MouseEvent -> UIEvent
3843
toUIEvent = unsafeCoerce
3944

40-
read :: Foreign -> F MouseEvent
41-
read = unsafeReadTagged "MouseEvent"
45+
toEvent :: MouseEvent -> Event
46+
toEvent = unsafeCoerce
4247

4348
foreign import screenX :: MouseEvent -> Int
4449

src/Web/UIEvent/UIEvent.purs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
module Web.UIEvent.UIEvent where
22

3-
import Foreign (F, Foreign)
3+
import Data.Maybe (Maybe)
44
import Unsafe.Coerce (unsafeCoerce)
5-
import Web.DOM.Internal.FFI (unsafeReadProtoTagged)
6-
import Web.Event.Types (Event)
5+
import Web.Event.Event (Event)
6+
import Web.Internal.FFI (unsafeReadProtoTagged)
77

88
foreign import data UIEvent :: Type
99

10+
fromEvent :: Event -> Maybe UIEvent
11+
fromEvent = unsafeReadProtoTagged "UIEvent"
12+
1013
toEvent :: UIEvent -> Event
1114
toEvent = unsafeCoerce
12-
13-
read :: Foreign -> F UIEvent
14-
read = unsafeReadProtoTagged "UIEvent"

src/Web/UIEvent/WheelEvent.purs

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
module Web.UIEvent.WheelEvent
22
( WheelEvent
3-
, toEvent
3+
, fromMouseEvent
4+
, fromUIEvent
5+
, fromEvent
6+
, toMouseEvent
47
, toUIEvent
5-
, read
8+
, toEvent
69
, deltaX
710
, deltaY
811
, deltaZ
@@ -17,21 +20,31 @@ import Prelude
1720

1821
import Data.Enum (class BoundedEnum, class Enum, Cardinality(..), defaultPred, defaultSucc, toEnum)
1922
import Data.Maybe (Maybe(..), fromJust)
20-
import Foreign (F, Foreign, unsafeReadTagged)
2123
import Unsafe.Coerce (unsafeCoerce)
2224
import Web.Event.Event (Event)
25+
import Web.Internal.FFI (unsafeReadProtoTagged)
26+
import Web.UIEvent.MouseEvent (MouseEvent)
2327
import Web.UIEvent.UIEvent (UIEvent)
2428

2529
foreign import data WheelEvent :: Type
2630

27-
toEvent :: WheelEvent -> Event
28-
toEvent = unsafeCoerce
31+
fromMouseEvent :: MouseEvent -> Maybe WheelEvent
32+
fromMouseEvent = unsafeReadProtoTagged "WheelEvent"
33+
34+
fromUIEvent :: UIEvent -> Maybe WheelEvent
35+
fromUIEvent = unsafeReadProtoTagged "WheelEvent"
36+
37+
fromEvent :: Event -> Maybe WheelEvent
38+
fromEvent = unsafeReadProtoTagged "WheelEvent"
39+
40+
toMouseEvent :: WheelEvent -> MouseEvent
41+
toMouseEvent = unsafeCoerce
2942

3043
toUIEvent :: WheelEvent -> UIEvent
3144
toUIEvent = unsafeCoerce
3245

33-
read :: Foreign -> F WheelEvent
34-
read = unsafeReadTagged "WheelEvent"
46+
toEvent :: WheelEvent -> Event
47+
toEvent = unsafeCoerce
3548

3649
foreign import deltaX :: WheelEvent -> Number
3750

0 commit comments

Comments
 (0)