enc

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2021 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package enc provides an easy way to encode data in multiple commonly used formats such as Hex and Base64. It wraps the standard library packages such as encoding/base32 and encoding/base64 into easy to use functions.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Base32

func Base32(p []byte) string

Base32 function converts the supplied data to standard base32 encoded string as per RFC 4648

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {

	testInput := []byte("Silence is the divine secret to success ...")

	fmt.Println(enc.Base32(testInput))

}
Output:

KNUWYZLOMNSSA2LTEB2GQZJAMRUXM2LOMUQHGZLDOJSXIIDUN4QHG5LDMNSXG4ZAFYXC4===

func Base32Hex

func Base32Hex(p []byte) string

Base32Hex function converts the supplied data to "Extended Hex Alphabet" based base32 encoded string as defined in RFC 4648

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {

	testInput := []byte("Silence is the divine secret to success ...")

	fmt.Println(enc.Base32Hex(testInput))

}
Output:

ADKMOPBECDII0QBJ41Q6GP90CHKNCQBECKG76PB3E9IN883KDSG76TB3CDIN6SP05ON2S===

func Base64

func Base64(p []byte) string

Base64 function converts the supplied data to a Base64 Standard encoding formatted string as defined in RFC 4648.

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {

	testInput := []byte("Silence is the divine secret to success ...")

	fmt.Println(enc.Base64(testInput))

}
Output:

U2lsZW5jZSBpcyB0aGUgZGl2aW5lIHNlY3JldCB0byBzdWNjZXNzIC4uLg==

func Base64URL

func Base64URL(p []byte) string

Base64URL function converts the supplied data to a Base64 URL encoding formatted string as defined for URLs and file names.

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {

	testInput := []byte("Silence is the divine secret to success ...")

	fmt.Println(enc.Base64URL(testInput))

}
Output:

U2lsZW5jZSBpcyB0aGUgZGl2aW5lIHNlY3JldCB0byBzdWNjZXNzIC4uLg==

func Hex

func Hex(p []byte) string

Hex function converts the supplied data to Hex encoded string it is in ways similar to fmt.Printf("%x", p)

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {

	testInput := []byte("Silence is the divine secret to success ...")

	fmt.Println(enc.Hex(testInput))

}
Output:

53696c656e63652069732074686520646976696e652073656372657420746f2073756363657373202e2e2e

func JSON

func JSON(v interface{}, opt ...Options) string

JSON function converts the supplied data to a JSON formated string. In case it fails to interpret the data it would return an empty string. This function also accepts functional options in a list that can change the encoded output.

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {

	// Make sure the the structure fields are exported. Add meaningful JSON
	// names that match your target using tags.
	testInput := []struct {
		Name string `json:"name"`
		Age  int    `json:"ageOf"`
	}{
		{"Mohit", 30},
		{"Deepti", 22},
	}

	fmt.Println(enc.JSON(testInput))

}
Output:

[{"name":"Mohit","ageOf":30},{"name":"Deepti","ageOf":22}]

func JSONformat

func JSONformat(v interface{}, prefix, indent string) string

JSONformat function converts the supplied data to JSON formatted string and adds additional pretty print formatting using prefix & indent inputs.

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {

	// Make sure the the structure fields are exported. Add meaningful JSON
	// names that match your target using tags.
	testInput := []struct {
		Name string `json:"name"`
		Age  int    `json:"ageOf"`
	}{
		{"Keshav", 25},
		{"Mohan", 15},
	}

	fmt.Println(enc.JSONformat(testInput, "", "\t"))

}
Output:

[
	{
		"name": "Keshav",
		"ageOf": 25
	},
	{
		"name": "Mohan",
		"ageOf": 15
	}
]

func JSONhtml

func JSONhtml(v interface{}) string

JSONhtml function converts the supplies data to JSON formated string and HTML Escapes it. This makes the string safe to be used embedded in HTML.

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {
	testInput := []struct {
		Name    string
		Message string
	}{
		{
			Name:    "The old Yoda",
			Message: "<h1>Speak last,<br>Show Respect,<br>power and Wisdom shall follow.</h1>",
		},
	}

	fmt.Println(enc.JSONhtml(testInput))

}
Output:

[{"Name":"The old Yoda","Message":"\u003ch1\u003eSpeak last,\u003cbr\u003eShow Respect,\u003cbr\u003epower and Wisdom shall follow.\u003c/h1\u003e"}]

Types

type Options

type Options func(*option) *option

Options is the functional options for JSON Encoding

func Format

func Format(prefix, indent string) Options

Format functional option provides a way to pretty format the JSON output

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {

	// Make sure the the structure fields are exported. Add meaningful JSON
	// names that match your target using tags.
	testInput := []struct {
		Name string `json:"name"`
		Age  int    `json:"ageOf"`
	}{
		{"Mohit", 30},
		{"Deepti", 22},
	}

	fmt.Println(enc.JSON(testInput, enc.Format("", "\t")))

}
Output:

[
	{
		"name": "Mohit",
		"ageOf": 30
	},
	{
		"name": "Deepti",
		"ageOf": 22
	}
]

func HTMLEscaped

func HTMLEscaped() Options

HTMLEscaped functional option enables HTML Escaping for JSON

Example
package main

import (
	"fmt"

	"github.com/boseji/auth/enc"
)

func main() {
	testInput := []struct {
		Name    string
		Message string
	}{
		{
			Name:    "The old Yoda",
			Message: "<h1>Speak last,<br>Show Respect,<br>power and Wisdom shall follow.</h1>",
		},
	}

	fmt.Println(enc.JSON(testInput, enc.HTMLEscaped()))

}
Output:

[{"Name":"The old Yoda","Message":"\u003ch1\u003eSpeak last,\u003cbr\u003eShow Respect,\u003cbr\u003epower and Wisdom shall follow.\u003c/h1\u003e"}]

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL