package rcmgr

import (
	

	
)

type ErrStreamOrConnLimitExceeded struct {
	current, attempted, limit int
	err                       error
}

func ( *ErrStreamOrConnLimitExceeded) () string { return .err.Error() }
func ( *ErrStreamOrConnLimitExceeded) () error { return .err }

// edge may be "" if this is not an edge error
func logValuesStreamLimit(,  string,  network.Direction,  network.ScopeStat,  error) []interface{} {
	 := make([]interface{}, 0, 2*8)
	 = append(, "scope", )
	if  != "" {
		 = append(, "edge", )
	}
	 = append(, "direction", )
	var  *ErrStreamOrConnLimitExceeded
	if errors.As(, &) {
		 = append(,
			"current", .current,
			"attempted", .attempted,
			"limit", .limit,
		)
	}
	return append(, "stat", , "error", )
}

// edge may be "" if this is not an edge error
func logValuesConnLimit(,  string,  network.Direction,  bool,  network.ScopeStat,  error) []interface{} {
	 := make([]interface{}, 0, 2*9)
	 = append(, "scope", )
	if  != "" {
		 = append(, "edge", )
	}
	 = append(, "direction", , "usefd", )
	var  *ErrStreamOrConnLimitExceeded
	if errors.As(, &) {
		 = append(,
			"current", .current,
			"attempted", .attempted,
			"limit", .limit,
		)
	}
	return append(, "stat", , "error", )
}

type ErrMemoryLimitExceeded struct {
	current, attempted, limit int64
	priority                  uint8
	err                       error
}

func ( *ErrMemoryLimitExceeded) () string { return .err.Error() }
func ( *ErrMemoryLimitExceeded) () error { return .err }

// edge may be "" if this is not an edge error
func logValuesMemoryLimit(,  string,  network.ScopeStat,  error) []interface{} {
	 := make([]interface{}, 0, 2*8)
	 = append(, "scope", )
	if  != "" {
		 = append(, "edge", )
	}
	var  *ErrMemoryLimitExceeded
	if errors.As(, &) {
		 = append(,
			"current", .current,
			"attempted", .attempted,
			"priority", .priority,
			"limit", .limit,
		)
	}
	return append(, "stat", , "error", )
}