package main

import (
	"encoding/json"
	"log"
)

var debugEnabled bool

func SetDebug(v bool) { debugEnabled = v }

func DebugEnabled() bool { return debugEnabled }

// debugDump pretty-prints v with a label, but only when -debug is on.
func debugDump(label string, v any) {
	if !debugEnabled {
		return
	}
	b, err := json.MarshalIndent(v, "", "  ")
	if err != nil {
		log.Printf("DEBUG %s: <marshal error: %v>", label, err)
		return
	}
	log.Printf("DEBUG %s:\n%s", label, string(b))
}

// debugRaw logs a raw string block (e.g. raw HTTP bodies) only when -debug is on.
func debugRaw(label, body string) {
	if !debugEnabled {
		return
	}
	log.Printf("DEBUG %s:\n%s", label, body)
}
