Skip to content
/ encoder Public

create multiple encoder object for encode and decode data

License

Notifications You must be signed in to change notification settings

Ja7ad/encoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

encoder

create multiple encoder object for encode and decode data and an example for register pattern.

install

go get -u github.com/Ja7ad/encoder

usage

example usage for encoder :

package main

import (
	"fmt"
	"log"
	"github.com/Ja7ad/encoder"
)

type Person struct {
	Name    string `json:"name" bson:"name"`
	Age     int    `json:"age" bson:"age"`
	Address string `json:"address" bson:"address"`
}

func main() {
	enc := New()
	enc.RegisterEncoder(JSON, &JsonEncoder{})
	enc.RegisterEncoder(GOB, &GobEncoder{})
	enc.RegisterEncoder(BSON, &BsonEncoder{})
	enc.RegisterEncoder(PROTO, &ProtoEncoder{})

	p := &Person{}

	jsonEnc, err := enc.GetJsonEncoder()
	if err != nil {
		log.Fatal(err)
	}

	b, err := jsonEnc.Encode(&Person{
		Name:    "Javad",
		Age:     30,
		Address: "example address 1",
	})

	if err != nil {
		log.Fatal(err)
	}

	if err = jsonEnc.Decode(b, p); err != nil {
		log.Fatal(err)
	}

	fmt.Println(p)
}

About

create multiple encoder object for encode and decode data

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages