func Marshal240(vs ...interface{}) ([]byte, error) {
	return marshal(240, vs...)
}
Marshal240 returns the CNAB 240 encoding of vs. The accepted types are struct
and slice of struct, where only the exported struct fields with the tag
"cnab" are going to be used. Invalid cnab tag ranges will generate errors.

The following struct field types are supported: string, bool, int, int8,
int16, int32, int64, uint, uint8, uint16, uint23, uint64, float32, float64,
gocnab.Marshaler and encoding.TextMarshaler. Where string are transformed to
uppercase and are left aligned in the CNAB space, booleans are represented as
1 or 0, numbers are right aligned with zeros and float decimal separators are
removed.

When only one parameter is given the generated CNAB line will only have break
line symbols if the input is a slice of struct. When using multiple
parameters the library determinate that you are trying to build the full CNAB
file, so it add the breaking lines and the final control symbol.
package gocnab
import (
	"bytes"
	"encoding"
	"errors"
	"fmt"
	"reflect"
	"strconv"
	"strings"
)
const LineBreak = "\r\n"
const FinalControlCharacter = "\x1A"
var (
	ErrUnsupportedType = errors.New("gocnab: unsupported type")
	ErrInvalidFieldTagFormat = errors.New("invalid field tag format")
	ErrInvalidFieldTagBeginRange = errors.New("invalid begin range in cnab tag")
	ErrInvalidFieldTagEndRange = errors.New("invalid end range in cnab tag")
	ErrInvalidFieldTagRange = errors.New("invalid range in cnab tag")
)
type MarshalOptions struct {
	addFinalControlCharacter bool
}
type MarshalOptionFunc func(*MarshalOptions)
func WithFinalControlCharacter(enabled bool) MarshalOptionFunc {
	return MarshalOptionFunc(func(options *MarshalOptions) {
		options.addFinalControlCharacter = enabled
	})
}