Add typed/setup/getinfo (#472)

This commit is contained in:
WarGrey Gyoudmon Ju 2016-12-16 05:51:33 +08:00 committed by Sam Tobin-Hochstadt
parent 859d9f9eee
commit 90a4d73414

View File

@ -0,0 +1,34 @@
#lang typed/racket/base
(provide (all-defined-out))
(define-type Directory-Record directory-record)
(define-type Info-Ref (->* (Symbol) ((-> Any)) Any))
(define-type Info-Directory-Mode (U 'preferred 'all-available 'no-planet 'no-user))
(define-type Info-Directory-Record-Key (U 'preferred 'all-available))
(require/typed/provide
setup/getinfo
[#:struct directory-record
([maj : Integer]
[min : Integer]
[spec : Any]
[path : Path]
[syms : (Listof Symbol)])
#:extra-constructor-name make-directory-record]
[get-info
(-> (Listof String)
[#:namespace (Option Namespace)]
[#:bootstrap? Any]
(Option Info-Ref))]
[get-info/full
(-> Path-String
[#:namespace (Option Namespace)]
[#:bootstrap? Any]
(Option Info-Ref))]
[find-relevant-directories
(->* ((Listof Symbol)) (Info-Directory-Mode) (Listof Path))]
[find-relevant-directory-records
(-> (Listof Symbol) Info-Directory-Record-Key (Listof Directory-Record))]
[reset-relevant-directories-state!
(-> Void)])