Socket
Socket
Sign inDemoInstall

github.com/modood/table

Package Overview
Dependencies
0
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    github.com/modood/table

Package table produces a string that represents slice of structs data in a text table


Version published

Readme

Source

table

Build Status Coverage Status GoDoc

Produces a string that represents slice of structs data in a text table, inspired by gajus/table.

Features:

  • No dependency.
  • Cell content aligned.
  • Column width self-adaptation
  • Support type of struct field: int, float, string, bool, slice, struct, map, time.Time and everything.
  • Support custom table header by declaring optional tag: table.(Thanks @skyfireitdiy)

Installation

$ go get github.com/modood/table

Quick start

package main

import (
	"github.com/modood/table"
)

type House struct {
	Name  string `table:"Name"`
	Sigil string
	Motto string
}

func main() {
	hs := []House{
		{"Stark", "direwolf", "Winter is coming"},
		{"Targaryen", "dragon", "Fire and Blood"},
		{"Lannister", "lion", "Hear Me Roar"},
	}

	// Output to stdout
	table.Output(hs)

	// Or just return table string and then do something
	s := table.Table(hs)
	_ = s
}

output:

┌───────────┬──────────┬──────────────────┐
│ Name      │ Sigil    │ Motto            │
├───────────┼──────────┼──────────────────┤
│ Stark     │ direwolf │ Winter is coming │
│ Targaryen │ dragon   │ Fire and Blood   │
│ Lannister │ lion     │ Hear Me Roar     │
└───────────┴──────────┴──────────────────┘

Document

  • func Output(slice interface{})

    formats slice of structs data and writes to standard output.(Using box drawing characters)

  • func OutputA(slice interface{})

    formats slice of structs data and writes to standard output.(Using standard ascii characters)

  • func Table(slice interface{}) string

    formats slice of structs data and returns the resulting string.(Using box drawing characters)

  • func AsciiTable(slice interface{}) string

    formats slice of structs data and returns the resulting string.(Using standard ascii characters)

  • compare box drawing characters with standard ascii characters

    box drawing:

    ┌───────────┬──────────┬──────────────────┐
    │ Name      │ Sigil    │ Motto            │
    ├───────────┼──────────┼──────────────────┤
    │ Stark     │ direwolf │ Winter is coming │
    │ Targaryen │ dragon   │ Fire and Blood   │
    │ Lannister │ lion     │ Hear Me Roar     │
    └───────────┴──────────┴──────────────────┘
    

    standard ascii:

    +-----------+----------+------------------+
    | Name      | Sigil    | Motto            |
    +-----------+----------+------------------+
    | Stark     | direwolf | Winter is coming |
    | Targaryen | dragon   | Fire and Blood   |
    | Lannister | lion     | Hear Me Roar     |
    +-----------+----------+------------------+
    

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

License

this repo is released under the MIT License.

FAQs

Last updated on 27 May 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc