Type check and coerce arguments to user functions and return values from std Rust functions (#6958)

* Shuffle around function call code

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Refactor function calls to share more code

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Hack to leave the result of revolve as a singleton rather than array

Signed-off-by: Nick Cameron <nrc@ncameron.org>

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
Nick Cameron
2025-05-19 16:50:15 +12:00
committed by GitHub
parent f3e9d110c0
commit b19acd550d
197 changed files with 13837 additions and 14317 deletions

View File

@ -12,7 +12,7 @@ reduce(
@array: [any],
initial: any,
f: fn(any, accum: any): any,
): [any]
): any
```
Take a starting value. Then, for each element of an array, calculate the next value,
@ -28,7 +28,7 @@ using the previous value and the element.
### Returns
[`[any]`](/docs/kcl-std/types/std-types-any)
[`any`](/docs/kcl-std/types/std-types-any)
### Examples

View File

@ -11,7 +11,7 @@ Compute the length of the given leg.
legLen(
hypotenuse: number(Length),
leg: number(Length),
): number(deg)
): number(Length)
```
@ -25,7 +25,7 @@ legLen(
### Returns
[`number(deg)`](/docs/kcl-std/types/std-types-number) - A number.
[`number(Length)`](/docs/kcl-std/types/std-types-number) - A number.
### Examples

View File

@ -17,7 +17,7 @@ revolve(
bidirectionalAngle?: number(Angle),
tagStart?: tag,
tagEnd?: tag,
): Solid
): [Solid; 1+]
```
This, like extrude, is able to create a 3-dimensional solid from a
@ -46,7 +46,7 @@ revolved around the same axis.
### Returns
[`Solid`](/docs/kcl-std/types/std-types-Solid) - A solid is a collection of extruded surfaces.
[`[Solid; 1+]`](/docs/kcl-std/types/std-types-Solid)
### Examples