26 lines
789 B
GDScript
26 lines
789 B
GDScript
class Class:
|
|
extends RefCounted
|
|
|
|
var error: Error
|
|
var error_description: String
|
|
var inner_result: Class
|
|
func _get_result_type_description() -> String:
|
|
return "Operation"
|
|
func fail(error: Error, error_description: String = "", inner_result: Class = null) -> void:
|
|
assert(error != OK)
|
|
self.error = error
|
|
self.error_description = error_description
|
|
self.inner_result = inner_result
|
|
func _success():
|
|
error = OK
|
|
error_description = ""
|
|
inner_result = null
|
|
func _to_string() -> String:
|
|
return "%s error: %s (%s)%s%s" % [
|
|
_get_result_type_description(),
|
|
error,
|
|
error_string(error),
|
|
(", description: \"%s\"" % [error_description]) if error_description else "",
|
|
(", inner error:\n%s" % [inner_result]) if inner_result else "",
|
|
] if error else "%s(success)"
|