safing-portmaster/spn/terminal/fmt.go

27 lines
751 B
Go

package terminal
import "fmt"
// CustomTerminalIDFormatting defines an interface for terminal to define their custom ID format.
type CustomTerminalIDFormatting interface {
CustomIDFormat() string
}
// FmtID formats the terminal ID together with the parent's ID.
func (t *TerminalBase) FmtID() string {
if t.ext != nil {
if customFormatting, ok := t.ext.(CustomTerminalIDFormatting); ok {
return customFormatting.CustomIDFormat()
}
}
return fmtTerminalID(t.parentID, t.id)
}
func fmtTerminalID(craneID string, terminalID uint32) string {
return fmt.Sprintf("%s#%d", craneID, terminalID)
}
func fmtOperationID(craneID string, terminalID, operationID uint32) string {
return fmt.Sprintf("%s#%d>%d", craneID, terminalID, operationID)
}