add displayable(according to user's input argument) RowArray(covert line to array) To Buffer
(b *Buffer, line string, showNum, hideNum []int)
| 887 | |
| 888 | // add displayable(according to user's input argument) RowArray(covert line to array) To Buffer |
| 889 | func addDRToBuffer(b *Buffer, line string, showNum, hideNum []int) error { |
| 890 | var err error |
| 891 | lineCSVParts, err := lineCSVParseFast(line, b.sep) |
| 892 | if err != nil { |
| 893 | return err |
| 894 | } |
| 895 | if len(showNum) != 0 || len(hideNum) != 0 { |
| 896 | // Pre-allocate slice with known capacity |
| 897 | visCol, err := getVisCol(showNum, hideNum, len(lineCSVParts)) |
| 898 | if err != nil { |
| 899 | return err |
| 900 | } |
| 901 | lineSli := make([]string, 0, len(visCol)) |
| 902 | for _, i := range visCol { |
| 903 | lineSli = append(lineSli, lineCSVParts[i]) |
| 904 | } |
| 905 | err = b.contAppendSli(lineSli, args.Strict) |
| 906 | if err != nil { |
| 907 | return err |
| 908 | } |
| 909 | |
| 910 | } else { |
| 911 | err := b.contAppendSli(lineCSVParts, args.Strict) |
| 912 | if err != nil { |
| 913 | return err |
| 914 | } |
| 915 | } |
| 916 | return err |
| 917 | } |