Skip to content

Commit

Permalink
add ability to convert between types consistenly
Browse files Browse the repository at this point in the history
In our downstream systems and tools (terraform-provider-cloudflare,
cf-terraforming) we often have to swap between Golang types and pseudo
types. One example is with Terraform schemas and our struct types. There
isn't a consistent way which means they are all implemented slightly
different and there isn't a great convention. This commit aims to solve
that by introducing a standard to adhear to by introducing a number of
helper methods.

- <type>Ptr: Accepts a value and returns a pointer.
- <type>Value: Accepts a pointer and returns a value.
- <type>PtrSlice: Accepts a slice of values and returns a slice of pointers.
- <type>ValueSlice: Accepts a slice of pointers and returns a slice of values.
- <type>Map: Accepts a string map of values into a string map of pointers.
- <type>ValueMap: Accepts a string map of pointers into a string map of values.

Example in Terraform where the schema is a string but we want a pointer.

```go
examplePtr := cloudflare.StringPtr(d.Get("example").(string))
```
  • Loading branch information
jacobbednarz committed Mar 8, 2022
1 parent 0bbd8aa commit 60809da
Showing 1 changed file with 939 additions and 0 deletions.
Loading

0 comments on commit 60809da

Please sign in to comment.