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_ERRORS => e
  raise ParseError, e
end

def load_file(path)

def load_file(path)
  load(File.open(path, 'r', encoding: 'UTF-8', &: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, EncodingError, JSON::ParserError]
  else
    [SyntaxError]
  end
end