From 74dd8fb7e99982a0efbc4e5a53ef676aa7a1b1f4 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Fri, 17 Dec 2021 01:25:25 +0000 Subject: [PATCH] docs(examples): add error handling to examples --- README.md | 34 ++++++------ bytes_example_test.go | 9 +++- ints_example_test.go | 17 ++++-- rands.go | 4 ++ strings_example_test.go | 113 ++++++++++++++++++++++++++++++---------- 5 files changed, 126 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index efbb4aa..d2f4726 100644 --- a/README.md +++ b/README.md @@ -37,27 +37,27 @@ alt="GitHub issues">

```go -s, _ := rands.Base64(16) // => CYxqEdUB1Rzno3SyZu2g/g== -s, _ := rands.Base64URL(16) // => zlqw9aFqcFggbk2asn3_aQ -s, _ := rands.Hex(16) // => 956e2ec9e7f19ddd58bb935826926531 -s, _ := rands.Alphanumeric(16) // => Fvk1PkrmG5crgOjT -s, _ := rands.Alphabetic(16) // => XEJIzcZufHkuUmRM -s, _ := rands.Upper(16) // => UMAGAFPPNDRGLUPZ -s, _ := rands.UpperNumeric(16) // => DF0CQS0TK9CPUO3E -s, _ := rands.Lower(16) // => ocsmggykzrxzfwgt -s, _ := rands.LowerNumeric(16) // => rwlv7a1p7klqffs5 -s, _ := rands.Numeric(16) // => 9403373143598295 +s, err := rands.Base64(16) // => CYxqEdUB1Rzno3SyZu2g/g== +s, err := rands.Base64URL(16) // => zlqw9aFqcFggbk2asn3_aQ +s, err := rands.Hex(16) // => 956e2ec9e7f19ddd58bb935826926531 +s, err := rands.Alphanumeric(16) // => Fvk1PkrmG5crgOjT +s, err := rands.Alphabetic(16) // => XEJIzcZufHkuUmRM +s, err := rands.Upper(16) // => UMAGAFPPNDRGLUPZ +s, err := rands.UpperNumeric(16) // => DF0CQS0TK9CPUO3E +s, err := rands.Lower(16) // => ocsmggykzrxzfwgt +s, err := rands.LowerNumeric(16) // => rwlv7a1p7klqffs5 +s, err := rands.Numeric(16) // => 9403373143598295 -s, _ := rands.String(16, "abcdefABCDEF") // => adCDCaDEdeffeDeb -s, _ := rands.UnicodeString(16, []rune("九七二人入八力十下三千上口土夕大")) // => 下下口九力下土夕下土八上二夕大三 +s, err := rands.String(16, "abcdefABCDEF") // => adCDCaDEdeffeDeb +s, err := rands.UnicodeString(16, []rune("九七二人入八力十下三千上口土夕大")) // => 下下口九力下土夕下土八上二夕大三 -s, _ := rands.DNSLabel(16) // => z0ij9o8qkbs0ru-h -s, _ := rands.UUID() // => a62b8712-f238-43ba-a47e-333f5fffe785 +s, err := rands.DNSLabel(16) // => z0ij9o8qkbs0ru-h +s, err := rands.UUID() // => a62b8712-f238-43ba-a47e-333f5fffe785 -n, _ := rands.Int(2147483647) // => 1334400235 -n, _ := rands.Int64(int64(9223372036854775807)) // => 8256935979116161233 +n, err := rands.Int(2147483647) // => 1334400235 +n, err := rands.Int64(int64(9223372036854775807)) // => 8256935979116161233 -b, _ := rands.Bytes(8) // => [0 220 137 243 135 204 34 63] +b, err := rands.Bytes(8) // => [0 220 137 243 135 204 34 63] ``` ## Import diff --git a/bytes_example_test.go b/bytes_example_test.go index b0b8c90..83434f7 100644 --- a/bytes_example_test.go +++ b/bytes_example_test.go @@ -2,11 +2,16 @@ package rands_test import ( "fmt" + "log" "github.com/jimeh/rands" ) func ExampleBytes() { - b, _ := rands.Bytes(8) - fmt.Printf("%+v\n", b) // => [0 220 137 243 135 204 34 63] + b, err := rands.Bytes(8) + if err != nil { + log.Fatal(err) + } + + fmt.Printf("%+v\n", b) // => [181 153 143 235 241 20 208 173] } diff --git a/ints_example_test.go b/ints_example_test.go index 78b43dd..f6faf67 100644 --- a/ints_example_test.go +++ b/ints_example_test.go @@ -2,16 +2,25 @@ package rands_test import ( "fmt" + "log" "github.com/jimeh/rands" ) func ExampleInt() { - n, _ := rands.Int(2147483647) - fmt.Printf("%d\n", n) // => 1334400235 + n, err := rands.Int(2147483647) + if err != nil { + log.Fatal(err) + } + + fmt.Printf("%d\n", n) // => 1908357440 } func ExampleInt64() { - n, _ := rands.Int64(int64(9223372036854775807)) - fmt.Printf("%d\n", n) // => 8256935979116161233 + n, err := rands.Int64(int64(9223372036854775807)) + if err != nil { + log.Fatal(err) + } + + fmt.Printf("%d\n", n) // => 6530460062499341591 } diff --git a/rands.go b/rands.go index 514a4b9..beb394e 100644 --- a/rands.go +++ b/rands.go @@ -4,6 +4,10 @@ // // All functions which produce strings from a alphabet of characters uses // rand.Int() to ensure a uniform distribution of all possible values. +// +// rands is intended for use in production code where random data generation is +// required. All functions have a error return value, which should be +// checked. package rands import "errors" diff --git a/strings_example_test.go b/strings_example_test.go index e59a97a..110186f 100644 --- a/strings_example_test.go +++ b/strings_example_test.go @@ -2,76 +2,133 @@ package rands_test import ( "fmt" + "log" "github.com/jimeh/rands" ) func ExampleBase64() { - s, _ := rands.Base64(16) - fmt.Println(s) // => CYxqEdUB1Rzno3SyZu2g/g== + s, err := rands.Base64(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => nYQLhIYTqh8oH/W4hZuXMQ== } func ExampleBase64URL() { - s, _ := rands.Base64URL(16) - fmt.Println(s) // => zlqw9aFqcFggbk2asn3_aQ + s, err := rands.Base64URL(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => zI_zrc1l0uPT4MxncR6e5w } func ExampleHex() { - s, _ := rands.Hex(16) - fmt.Println(s) // => 956e2ec9e7f19ddd58bb935826926531 + s, err := rands.Hex(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => b59e8977a13f3c030bd2ea1002ec8081 } func ExampleAlphanumeric() { - s, _ := rands.Alphanumeric(16) - fmt.Println(s) // => Fvk1PkrmG5crgOjT + s, err := rands.Alphanumeric(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => EgPieCBO7MuWhHtj } func ExampleAlphabetic() { - s, _ := rands.Alphabetic(16) - fmt.Println(s) // => XEJIzcZufHkuUmRM + s, err := rands.Alphabetic(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => VzcovEqvMRBWUtQC } func ExampleUpper() { - s, _ := rands.Upper(16) - fmt.Println(s) // => UMAGAFPPNDRGLUPZ + s, err := rands.Upper(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => MCZEGPWGYKNUEDCK } func ExampleUpperNumeric() { - s, _ := rands.UpperNumeric(16) - fmt.Println(s) // => DF0CQS0TK9CPUO3E + s, err := rands.UpperNumeric(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => 6LLPBBUW77B26X2X } func ExampleLower() { - s, _ := rands.Lower(16) - fmt.Println(s) // => ocsmggykzrxzfwgt + s, err := rands.Lower(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => dhoqhrqljadsztaa } func ExampleLowerNumeric() { - s, _ := rands.LowerNumeric(16) - fmt.Println(s) // => rwlv7a1p7klqffs5 + s, err := rands.LowerNumeric(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => th1z1b1d24l5h8pu } func ExampleNumeric() { - s, _ := rands.Numeric(16) - fmt.Println(s) // => 9403373143598295 + s, err := rands.Numeric(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => 3378802228987741 } func ExampleString() { - s, _ := rands.String(16, "abcdefABCDEF") - fmt.Println(s) // => adCDCaDEdeffeDeb + s, err := rands.String(16, "abcdefABCDEF") + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => BAFffADaadeeacfa } func ExampleUnicodeString() { - s, _ := rands.UnicodeString(16, []rune("九七二人入八力十下三千上口土夕大")) - fmt.Println(s) // => 下下口九力下土夕下土八上二夕大三 + s, err := rands.UnicodeString(16, []rune("九七二人入八力十下三千上口土夕大")) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => 八三口上土土七入力夕人力下三上力 } func ExampleDNSLabel() { - s, _ := rands.DNSLabel(16) - fmt.Println(s) // => z0ij9o8qkbs0ru-h + s, err := rands.DNSLabel(16) + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => ab-sbh5q0gfb6sqo } func ExampleUUID() { - s, _ := rands.UUID() - fmt.Println(s) // => a62b8712-f238-43ba-a47e-333f5fffe785 + s, err := rands.UUID() + if err != nil { + log.Fatal(err) + } + + fmt.Println(s) // => 6a1c4f65-d5d6-4a28-aa51-eaa94fa7ad4a }