From 90a4d7341472002884b758397ca8aa2f5986d4cb Mon Sep 17 00:00:00 2001 From: WarGrey Gyoudmon Ju Date: Fri, 16 Dec 2016 05:51:33 +0800 Subject: [PATCH] Add typed/setup/getinfo (#472) --- typed-racket-more/typed/setup/getinfo.rkt | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 typed-racket-more/typed/setup/getinfo.rkt diff --git a/typed-racket-more/typed/setup/getinfo.rkt b/typed-racket-more/typed/setup/getinfo.rkt new file mode 100644 index 00000000..a7807891 --- /dev/null +++ b/typed-racket-more/typed/setup/getinfo.rkt @@ -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)])