package slurm // Ptr returns a pointer to the given value. Useful for optional fields. func Ptr[T any](v T) *T { return &v } // --------------------------------------------------------------------------- // NoVal types — 3-field structs representing "set/infinite/number" pattern // from the Slurm OpenAPI spec. All fields are optional (pointer). // --------------------------------------------------------------------------- // Uint64NoVal represents an optional uint64 that can be unset or infinite. type Uint64NoVal struct { Set *bool `json:"set,omitempty"` Infinite *bool `json:"infinite,omitempty"` Number *int64 `json:"number,omitempty"` } // Uint32NoVal represents an optional uint32 that can be unset or infinite. type Uint32NoVal struct { Set *bool `json:"set,omitempty"` Infinite *bool `json:"infinite,omitempty"` Number *int64 `json:"number,omitempty"` } // Uint16NoVal represents an optional uint16 that can be unset or infinite. type Uint16NoVal struct { Set *bool `json:"set,omitempty"` Infinite *bool `json:"infinite,omitempty"` Number *int64 `json:"number,omitempty"` } // Float64NoVal represents an optional float64 that can be unset or infinite. type Float64NoVal struct { Set *bool `json:"set,omitempty"` Infinite *bool `json:"infinite,omitempty"` Number *float64 `json:"number,omitempty"` } // --------------------------------------------------------------------------- // String collection types — all marshal/unmarshal as JSON arrays of strings. // --------------------------------------------------------------------------- // CSVString is a comma-separated string collection. type CSVString []string // StringArray is a string array type (v0.0.40_string_array). type StringArray []string // StringList is a string list type (v0.0.40_string_list). type StringList []string // Hostlist is a hostlist type (v0.0.40_hostlist). type Hostlist []string // HostlistString is a hostlist string type (v0.0.40_hostlist_string). type HostlistString []string // --------------------------------------------------------------------------- // Process exit types // --------------------------------------------------------------------------- // ProcessExitCodeVerbose represents a verbose process exit code. type ProcessExitCodeVerbose struct { Status []string `json:"status,omitempty"` ReturnCode *Uint32NoVal `json:"return_code,omitempty"` Signal *ProcessExitSignal `json:"signal,omitempty"` } // ProcessExitSignal represents a signal received by a process. type ProcessExitSignal struct { ID *Uint16NoVal `json:"id,omitempty"` Name *string `json:"name,omitempty"` }