github.com/amarpal/go-tools@v0.0.0-20240422043104-40142f59f616/structlayout/layout.go (about)

     1  package structlayout
     2  
     3  import "fmt"
     4  
     5  type Field struct {
     6  	Name      string `json:"name"`
     7  	Type      string `json:"type"`
     8  	Start     int64  `json:"start"`
     9  	End       int64  `json:"end"`
    10  	Size      int64  `json:"size"`
    11  	Align     int64  `json:"align"`
    12  	IsPadding bool   `json:"is_padding"`
    13  }
    14  
    15  func (f Field) String() string {
    16  	if f.IsPadding {
    17  		return fmt.Sprintf("%s: %d-%d (size %d, align %d)",
    18  			"padding", f.Start, f.End, f.Size, f.Align)
    19  	}
    20  	return fmt.Sprintf("%s %s: %d-%d (size %d, align %d)",
    21  		f.Name, f.Type, f.Start, f.End, f.Size, f.Align)
    22  }