Skip to content

Commit 1d5e2a8

Browse files
committed
refact: mv os_impl/private/platform_util root's private
1 parent 9f0b90c commit 1d5e2a8

File tree

2 files changed

+44
-42
lines changed

2 files changed

+44
-42
lines changed
Lines changed: 2 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,2 @@
1-
2-
import std/macros
3-
4-
const nimDoc = defined(nimdoc)
5-
macro platformAvailImpl(inPlat: static[bool]; platStr: static[string]; def) =
6-
if nimDoc:
7-
def.body = newStmtList(
8-
newCommentStmtNode ".. hint:: `Availability" &
9-
"<https://docs.python.org/3/library/intro.html#availability>`_: " &
10-
platStr,
11-
nnkDiscardStmt.newTree newEmptyNode()
12-
)
13-
return def
14-
if inPlat:
15-
return def
16-
result = def
17-
result.body = newEmptyNode()
18-
result.addPragma newColonExpr(
19-
ident"error",
20-
newLit "this is only available on platform: " & platStr & '.'
21-
)
22-
23-
template platformAvail*(platform; def) =
24-
## Pragma on procs to generate doc of sth like `Availability: Windows.`
25-
##
26-
## Currently, `platform` must be something
27-
## that can be put within `defined`.
28-
bind platformAvailImpl
29-
platformAvailImpl(defined(platform), astToStr(platform), def)
30-
31-
template platformAvailWhen*(platform; cond: bool; def) =
32-
bind platformAvailImpl
33-
platformAvailImpl(defined(platform) and cond,
34-
astToStr(platform) & " when " & astToStr(cond), def)
35-
36-
template platformUnavail*(platform; def) =
37-
bind platformAvailImpl
38-
platformAvailImpl(not defined(platform), "not " & astToStr(platform), def)
39-
40-
template platformNoJs*(def) =
41-
bind platformUnavail
42-
platformUnavail(js, def)
1+
import ../../../private/platform_utils
2+
export platform_utils

src/pylib/private/platform_utils.nim

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
2+
import std/macros
3+
4+
const nimDoc = defined(nimdoc)
5+
macro platformAvailImpl(inPlat: static[bool]; platStr: static[string]; def) =
6+
if nimDoc:
7+
def.body = newStmtList(
8+
newCommentStmtNode ".. hint:: `Availability" &
9+
"<https://docs.python.org/3/library/intro.html#availability>`_: " &
10+
platStr,
11+
nnkDiscardStmt.newTree newEmptyNode()
12+
)
13+
return def
14+
if inPlat:
15+
return def
16+
result = def
17+
result.body = newEmptyNode()
18+
result.addPragma newColonExpr(
19+
ident"error",
20+
newLit "this is only available on platform: " & platStr & '.'
21+
)
22+
23+
template platformAvail*(platform; def) =
24+
## Pragma on procs to generate doc of sth like `Availability: Windows.`
25+
##
26+
## Currently, `platform` must be something
27+
## that can be put within `defined`.
28+
bind platformAvailImpl
29+
platformAvailImpl(defined(platform), astToStr(platform), def)
30+
31+
template platformAvailWhen*(platform; cond: bool; def) =
32+
bind platformAvailImpl
33+
platformAvailImpl(defined(platform) and cond,
34+
astToStr(platform) & " when " & astToStr(cond), def)
35+
36+
template platformUnavail*(platform; def) =
37+
bind platformAvailImpl
38+
platformAvailImpl(not defined(platform), "not " & astToStr(platform), def)
39+
40+
template platformNoJs*(def) =
41+
bind platformUnavail
42+
platformUnavail(js, def)

0 commit comments

Comments
 (0)