Popularity
2.4
Declining
Activity
0.0
Stable
26
2
10

Programming language: Go
License: MIT License
Tags: Serialization    
Latest version: v0.0.1

fwencoder alternatives and similar packages

Based on the "Serialization" category.
Alternatively, view fwencoder alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of fwencoder or a related project?

Add another 'Serialization' Package

README

Fixed width file parser (encoder/decoder) for GO (golang)

[License](LICENSE) GoDoc Build Status Coverage Status Go Report Card

This library is using to parse fixed-width table data like:

Name            Address               Postcode Phone          Credit Limit Birthday
Evan Whitehouse V4560 Camel Back Road 3122     (918) 605-5383    1000000.5 19870101
Chuck Norris    P.O. Box 872          77868    (713) 868-6003     10909300 19651203

Install

To install the library use the following command:

$ go get -u github.com/o1egl/fwencoder

Decoding example

Parsing data from io.Reader:

type Person struct {
    Name        string
    Address     string
    Postcode    int
    Phone       string
    CreditLimit float64   `json:"Credit Limit"`
    Bday        time.Time `column:"Birthday" format:"20060102"`
}

f, _ := os.Open("/path/to/file")
defer f.Close

var people []Person
err := fwencoder.UnmarshalReader(f, &people)

You can also parse data from byte array:

b, _ := ioutil.ReadFile("/path/to/file")
var people []Person
err := fwencoder.Unmarshal(b, &people)

Encoding example

people := []Person{
    Name: "John",
    Address: "P.O. Box 872",
    Phone: "(713) 868-6003", 
    CreditLimit: 10909300,
    Bday: "19651203"
}

b, err := Marshal(&people)
fmt.Println(string(b))

or you can directly write to io.Writer

people := []Person{
    Name: "John",
    Address: "P.O. Box 872",
    Phone: "(713) 868-6003", 
    CreditLimit: 10909300,
    Bday: "19651203"
}

err := MarshalWriter(os.Stdout, &people)


*Note that all licence references and agreements mentioned in the fwencoder README section above are relevant to that project's source code only.