class Result

def self.try

def self.try
  try_result = yield
  unless try_result.is_a?(Result)
    raise StandardError, "Try result must be a Result object, got: #{try_result.class}"
  end
  try_result
rescue StandardError => e
  Result.failure(error: { message: e.message, error_class: e.class, backtrace: e.backtrace })
end