aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/documentation/lux/ffi.rb.lux
blob: 5e6f9616485cdfa6dc9a345c3003a8693b7790b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
(.module:
  [library
   [lux (#- int char type :as)
    ["$" documentation (#+ documentation:)]
    [data
     ["." text (#+ \n)
      ["%" format (#+ format)]]]
    [macro
     ["." template]]]]
  [\\library
   ["." /]])

(documentation: /.import:
  "Easily import types, methods, functions and constants."
  [(import: Stat
     ["#::."
      (executable? [] Bit)
      (size Int)])

   (import: File "as" RubyFile
     ["#::."
      ("static" SEPARATOR ..String)
      ("static" open [Path ..String] "io" "try" RubyFile)
      ("static" stat [Path] "io" "try" Stat)
      ("static" delete [Path] "io" "try" Int)
      ("static" file? [Path] "io" "try" Bit)
      ("static" directory? [Path] "io" "try" Bit)

      (read [] "io" "try" Binary)
      (write [Binary] "io" "try" Int)
      (flush [] "io" "try" "?" Any)
      (close [] "io" "try" "?" Any)])])

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..import:
             ($.default (/.Object brand))
             ($.default /.Nil)
             ($.default /.Function)
             ($.default /.Function)
             ($.default /.Integer)
             ($.default /.Float)
             ($.default /.String)]
            []))