module FDB

def self.api_version(version)

def self.api_version(version)
  header_version = 730
  if self.is_api_version_selected?()
    if @@chosen_version != version
      raise "FDB API already loaded at version #{@@chosen_version}."
    end
    return
  end
  if version < 14
    raise "FDB API versions before 14 are not supported"
  end
  if version > header_version
    raise "Latest known FDB API version is #{header_version}"
  end
  @@chosen_version = version
  require_relative 'fdbimpl'
  err = FDBC.fdb_select_api_version_impl(version, header_version)
  if err.nonzero?
    if err == 2203
      max_supported_version = FDBC.fdb_get_max_api_version()
      if header_version > max_supported_version
        raise "This version of the FoundationDB Ruby binding is not supported by the installed FoundationDB C library. The binding requires a library that supports API version #{header_version}, but the installed library supports a maximum version of #{max_supported_version}."
      else
        raise "API version #{version} is not supported by the installed FoundationDB C library."
      end
    end
    raise "FoundationDB API version error"
  end
  FDBC.init_c_api()
  require_relative 'fdbtuple'
  require_relative 'fdbdirectory'
  if version < 610
    require_relative 'fdbimpl_v609'
  end
  if version > 22
    require_relative 'fdblocality'
  end
  return
end