mirror of
https://github.com/Smaug123/WoofWare.Myriad
synced 2025-10-13 16:08:40 +00:00
Allow stream return type (#39)
This commit is contained in:
@@ -116,6 +116,16 @@ module internal SynTypePatterns =
|
||||
| _ -> None
|
||||
| _ -> None
|
||||
|
||||
let (|Stream|_|) (fieldType : SynType) : unit option =
|
||||
match fieldType with
|
||||
| SynType.LongIdent ident ->
|
||||
match ident.LongIdent |> List.map (fun i -> i.idText) with
|
||||
| [ "System" ; "IO" ; "Stream" ]
|
||||
| [ "IO" ; "Stream" ]
|
||||
| [ "Stream" ] -> Some ()
|
||||
| _ -> None
|
||||
| _ -> None
|
||||
|
||||
let (|NumberType|_|) (fieldType : SynType) =
|
||||
match fieldType with
|
||||
| SynType.LongIdent ident ->
|
||||
|
@@ -331,7 +331,8 @@ module internal HttpClientGenerator =
|
||||
|
||||
let returnExpr =
|
||||
match info.ReturnType with
|
||||
| String -> SynExpr.CreateIdentString "node"
|
||||
| String
|
||||
| Stream -> SynExpr.CreateIdentString "node"
|
||||
| _ ->
|
||||
JsonParseGenerator.parseNode
|
||||
None
|
||||
@@ -412,6 +413,19 @@ module internal HttpClientGenerator =
|
||||
)
|
||||
)
|
||||
)
|
||||
| Stream ->
|
||||
yield
|
||||
LetBang (
|
||||
"node",
|
||||
SynExpr.awaitTask (
|
||||
SynExpr.CreateApp (
|
||||
SynExpr.CreateLongIdent (
|
||||
SynLongIdent.Create [ "response" ; "Content" ; "ReadAsStreamAsync" ]
|
||||
),
|
||||
SynExpr.CreateIdentString "ct"
|
||||
)
|
||||
)
|
||||
)
|
||||
| _ ->
|
||||
yield
|
||||
LetBang (
|
||||
|
Reference in New Issue
Block a user