module Aws::Json

def dump(value)

def dump(value)
  ENGINE.dump(value, *ENGINE_DUMP_OPTIONS)
end

def json_engine

def json_engine
  [JSON, [], [], JSON::ParserError]
end

def load(json)

def load(json)
  ENGINE.load(json, *ENGINE_LOAD_OPTIONS)
rescue ENGINE_ERROR => e
  raise ParseError.new(e)
end

def load_file(path)

def load_file(path)
  self.load(File.open(path, 'r', encoding: 'UTF-8') { |f| f.read })
end

def oj_engine

def oj_engine
  require 'oj'
  [Oj, [{mode: :compat, symbol_keys: false}], [{ mode: :compat }], oj_parse_error]
rescue LoadError
  false
end

def oj_parse_error

def oj_parse_error
  if Oj.const_defined?('ParseError')
    Oj::ParseError
  else
    SyntaxError
  end
end