#ifndef EFL_FILE_IMPL_HH
#define EFL_FILE_IMPL_HH

#include "efl_file.eo.hh"

namespace efl { 
inline ::efl::eolian::return_traits<Efl_Gfx_Image_Load_Error>::type File::load_error_get() const
{
   Efl_Gfx_Image_Load_Error __return_value =  ::efl_file_load_error_get(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Efl_Gfx_Image_Load_Error>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type File::mmap_get( ::efl::eolian::out_traits<const Eina_File**>::type f,  ::efl::eolian::out_traits< ::efl::eina::string_view*>::type key) const
{
   const Eina_File * __out_param_f = {};
   const char * __out_param_key = {};
    ::efl_file_mmap_get(_eo_ptr()
      , & __out_param_f
      , & __out_param_key);
   ::efl::eolian::assign_out< ::efl::eolian::out_traits<const Eina_File**>::type, const Eina_File *>(f, __out_param_f);
   ::efl::eolian::assign_out< ::efl::eolian::out_traits< ::efl::eina::string_view*>::type, const char *>(key, __out_param_key);
}
inline ::efl::eolian::return_traits<bool>::type File::mmap_set( ::efl::eolian::in_traits<const Eina_File*>::type f,  ::efl::eolian::in_traits< ::efl::eina::optional< ::efl::eina::string_view>>::type key) const
{
   Eina_Bool __return_value =  ::efl_file_mmap_set(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<const Eina_File *,  ::efl::eolian::in_traits<const Eina_File*>::type>(f)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::optional< ::efl::eina::string_view>>::type>(key));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type File::file_get( ::efl::eolian::out_traits< ::efl::eina::string_view>::type file,  ::efl::eolian::out_traits< ::efl::eina::string_view>::type key) const
{
   const char * __out_param_file = {};
   const char * __out_param_key = {};
    ::efl_file_get(_eo_ptr()
      , & __out_param_file
      , & __out_param_key);
   ::efl::eolian::assign_out< ::efl::eolian::out_traits< ::efl::eina::string_view>::type, const char *>(file, __out_param_file);
   ::efl::eolian::assign_out< ::efl::eolian::out_traits< ::efl::eina::string_view>::type, const char *>(key, __out_param_key);
}
inline ::efl::eolian::return_traits<bool>::type File::file_set( ::efl::eolian::in_traits< ::efl::eina::string_view>::type file,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type key) const
{
   Eina_Bool __return_value =  ::efl_file_set(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(file)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(key));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
inline ::efl::eolian::return_traits<bool>::type File::save( ::efl::eolian::in_traits< ::efl::eina::string_view>::type file,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type key,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type flags) const
{
   Eina_Bool __return_value =  ::efl_file_save(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(file)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(key)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(flags));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
} 
namespace eo_cxx {
namespace efl { 
inline ::efl::eolian::return_traits<Efl_Gfx_Image_Load_Error>::type File::load_error_get() const
{
   Efl_Gfx_Image_Load_Error __return_value =  ::efl_file_load_error_get(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Efl_Gfx_Image_Load_Error>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type File::mmap_get( ::efl::eolian::out_traits<const Eina_File**>::type f,  ::efl::eolian::out_traits< ::efl::eina::string_view*>::type key) const
{
   const Eina_File * __out_param_f = {};
   const char * __out_param_key = {};
    ::efl_file_mmap_get(_eo_ptr()
      , & __out_param_f
      , & __out_param_key);
   ::efl::eolian::assign_out< ::efl::eolian::out_traits<const Eina_File**>::type, const Eina_File *>(f, __out_param_f);
   ::efl::eolian::assign_out< ::efl::eolian::out_traits< ::efl::eina::string_view*>::type, const char *>(key, __out_param_key);
}
inline ::efl::eolian::return_traits<bool>::type File::mmap_set( ::efl::eolian::in_traits<const Eina_File*>::type f,  ::efl::eolian::in_traits< ::efl::eina::optional< ::efl::eina::string_view>>::type key) const
{
   Eina_Bool __return_value =  ::efl_file_mmap_set(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<const Eina_File *,  ::efl::eolian::in_traits<const Eina_File*>::type>(f)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::optional< ::efl::eina::string_view>>::type>(key));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type File::file_get( ::efl::eolian::out_traits< ::efl::eina::string_view>::type file,  ::efl::eolian::out_traits< ::efl::eina::string_view>::type key) const
{
   const char * __out_param_file = {};
   const char * __out_param_key = {};
    ::efl_file_get(_eo_ptr()
      , & __out_param_file
      , & __out_param_key);
   ::efl::eolian::assign_out< ::efl::eolian::out_traits< ::efl::eina::string_view>::type, const char *>(file, __out_param_file);
   ::efl::eolian::assign_out< ::efl::eolian::out_traits< ::efl::eina::string_view>::type, const char *>(key, __out_param_key);
}
inline ::efl::eolian::return_traits<bool>::type File::file_set( ::efl::eolian::in_traits< ::efl::eina::string_view>::type file,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type key) const
{
   Eina_Bool __return_value =  ::efl_file_set(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(file)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(key));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
inline ::efl::eolian::return_traits<bool>::type File::save( ::efl::eolian::in_traits< ::efl::eina::string_view>::type file,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type key,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type flags) const
{
   Eina_Bool __return_value =  ::efl_file_save(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(file)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(key)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(flags));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
inline efl::File::operator ::efl::File() const { return *static_cast< ::efl::File const*>(static_cast<void const*>(this)); }
inline efl::File::operator ::efl::File&() { return *static_cast< ::efl::File*>(static_cast<void*>(this)); }
inline efl::File::operator ::efl::File const&() const { return *static_cast< ::efl::File const*>(static_cast<void const*>(this)); }
} }
#endif
