function logInfoMetatable.__tostring(c)local m={"\076\111\103\073\110\102\111 \123"}local V=#c.errors local R=#c.warnings local O=#c.infos if(V+R)+O==0 then table.insert(m,"\t\040\110\111 \109\101\115\115\097\103\101\115\041")end if V>0 then table.insert(m,("\t\069\114\114\111\114\115 \040\037\100\041 \123"):format(V))table.insert(m,indentLines(c.errors,2))table.insert(m,"\t\125")end if R>0 then table.insert(m,("\t\087\097\114\110\105\110\103\115 \040\037\100\041 \123"):format(R))table.insert(m,indentLines(c.warnings,2))table.insert(m,"\t\125")end if O>0 then table.insert(m,("\t\073\110\102\111\115 \040\037\100\041 \123"):format(O))table.insert(m,indentLines(c.infos,2))table.insert(m,"\t\125")end table.insert(m,"\125")return table.concat(m,"\n")end local function c()local c={errors={},warnings={};infos={}}setmetatable(c,logInfoMetatable)return c end local m={}

function logInfoMetatable:__tostring()
	local outputBuffer = {"LogInfo {"}

	local errorCount = #self.errors
	local warningCount = #self.warnings
	local infosCount = #self.infos

	if errorCount + warningCount + infosCount == 0 then
		table.insert(outputBuffer, "\t(no messages)")
	end

	if errorCount > 0 then
		table.insert(outputBuffer, ("\tErrors (%d) {"):format(errorCount))
		table.insert(outputBuffer, indentLines(self.errors, 2))
		table.insert(outputBuffer, "\t}")
	end

	if warningCount > 0 then
		table.insert(outputBuffer, ("\tWarnings (%d) {"):format(warningCount))
		table.insert(outputBuffer, indentLines(self.warnings, 2))
		table.insert(outputBuffer, "\t}")
	end

	if infosCount > 0 then
		table.insert(outputBuffer, ("\tInfos (%d) {"):format(infosCount))
		table.insert(outputBuffer, indentLines(self.infos, 2))
		table.insert(outputBuffer, "\t}")
	end

	table.insert(outputBuffer, "}")

	return table.concat(outputBuffer, "\n")
end

local function createLogInfo()
	local logInfo = {
		errors = {},
		warnings = {},
		infos = {},
	}

	setmetatable(logInfo, logInfoMetatable)

	return logInfo
end

local Logging = {}
