File: fusion-macros.h

package info (click to toggle)
haskell-conduit 1.3.6-1
  • links: PTS
  • area: main
  • in suites: sid, trixie
  • size: 516 kB
  • sloc: haskell: 8,068; ansic: 20; makefile: 4
file content (23 lines) | stat: -rw-r--r-- 1,120 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define INLINE_RULE0(new,old)             ;\
    new = old                            ;\
    {-# INLINE [0] new #-}               ;\
    {-# RULES "inline new" new = old #-}

#define INLINE_RULE(new,vars,body)                           ;\
    new vars = body                                         ;\
    {-# INLINE [0] new #-}                                  ;\
    {-# RULES "inline new" forall vars. new vars = body #-}

#define STREAMING0(name, nameC, nameS)                   ;\
    name = nameC                                         ;\
    {-# INLINE [0] name #-}                              ;\
    {-# RULES "unstream name"                             \
      name = unstream (streamConduit nameC nameS)         \
      #-}

#define STREAMING(name, nameC, nameS, vars)                             ;\
    name = nameC                                                        ;\
    {-# INLINE [0] name #-}                                             ;\
    {-# RULES "unstream name" forall vars.                              \
      name vars = unstream (streamConduit (nameC vars) (nameS vars))    \
      #-}