You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: types_fs.go
    path of file: ./repos/hubble-ui/backend/vendor/github.com/power-devops/perfstat
    
    the code of the file until where you have to start completion: package perfstat

import (
	"strings"
)

type FileSystem struct {
	Device      string /* name of the mounted device */
	MountPoint  string /* where the device is mounted */
	FSType      int    /* File system type, see the constants below */
	Flags       uint   /* Flags of the file system */
	TotalBlocks int64  /* number of 512 bytes blocks in the filesystem */
	FreeBlocks  int64  /* number of free 512 bytes block in the filesystem */
	TotalInodes int64  /* total number of inodes in the filesystem */
	FreeInodes  int64  /* number of free inodes in the filesystem */
}

func (f *FileSystem) TypeString() string {
	switch f.FSType {
	case FS_JFS2:
		return "jfs2"
	case FS_NAMEFS:
		return "namefs"
	case FS_NFS:
		return "nfs"
	case FS_JFS:
		return "jfs"
	case FS_CDROM:
		return "cdrfs"
	case FS_PROCFS:
		return "procfs"
	case FS_SFS:
		return "sfs"
	case FS_CACHEFS:
		return "cachefs"
	case FS_NFS3:
		return "nfs3"
	case FS_AUTOFS:
		return "autofs"
	case FS_POOLFS:
		return "poolfs"
	case FS_VXFS:
		return "vxfs
    
func (f *FileSystem) FlagsString() string {
	var flags []string

	switch {
	case f.Flags&VFS_READONLY != 0:
		flags = append(flags, "ro")
	case f.Flags&VFS_REMOVABLE != 0:
		flags = append(flags, "removable")
	case f.Flags&VFS_DEVMOUNT != 0:
		flags = append(flags, "local")
	case f.Flags&VFS_REMOTE != 0:
		flags = append(flags, "remote")
	case f.Flags&VFS_SYSV_MOUNT != 0:
		flags = append(flags, "sysv")
	case f.Flags&VFS_UNMOUNTING != 0:
		flags = append(flags, "unmounting")
	case f.Flags&VFS_NOSUID != 0:
		flags = append(flags, "nosuid")
	case f.Flags&VFS_NODEV != 0:
		flags = append(flags, "nodev")
	case f.Flags&VFS_NOINTEG != 0:
		flags = append(flags, "nointeg")
	case f.Flags&VFS_NOMANAGER != 0:
		flags = append(flags, "nomanager")
	case f.Flags&VFS_NOCASE != 0:
		flags = append(flags, "nocase")
	case f.Flags&VFS_UPCASE != 0:
		flags = append(flags, "upcase")
	case f.Flags&VFS_NBC != 0:
		flags = append(flags, "nbc")
	case f.Flags&VFS_MIND != 0:
		flags = append(flags, "mind")
	case f.Flags&VFS_RBR != 0:
		flags = append(flags, "rbr")
	case f.Flags&VFS_RBW != 0:
		flags = append(flags, "rbw")
	case f.Flags&VFS_DISCONNECTED != 0:
		flags = append(flags, "disconnected")
	case f.Flags&VFS_SHUTDOWN != 0:
		flags = append(flags, "shutdown")
	case f.Flags&VFS_VMOUNTOK != 0:
		flags = append(flags, "vmountok")
	case f.Flags&VFS_SUSER != 0:
		flags = append(flags, "suser")
	case f.Flags&VFS_SOFT_MOUNT != 0:
		flags = append(flags, "soft")
	case f.Flags&VFS_UNMOUNTED != 0:
		flags = append(flags, "unmounted")
	case f.Flags&VFS_DEADMOUNT != 0:
		flags = append(flags, "deadmount")
	case f.Flags&VFS_SNAPSHOT != 0:
		flags = append(flags, "snapshot")
	case f.Flags&VFS_VCM_ON != 0:
		flags = append(flags, "vcm_on")
	case f.Flags&VFS_VCM_MONITOR != 0:
		flags = append(flags, "vcm_monitor")
	case f.Flags&VFS_ATIMEOFF != 0:
		flags = append(flags, "noatime")
	case f.Flags&VFS_READMOSTLY != 0:
		flags = append(flags, "readmostly")
	case f.Flags&VFS_CIOR != 0:
		flags = append(flags, "cior")
	case f.Flags&VFS_CIO != 0:
		flags = append(flags, "cio")
	case f.Flags&VFS_DIO != 0:
		flags = append(flags, "dio")
	}

	return strings.Join(flags, ",")
}