{
  "header": "SDL_storage.h",
  "opaque_types": [
    {
      "name": "SDL_Storage"
    }
  ],
  "typedefs": [],
  "function_pointers": [],
  "c_type_aliases": [],
  "enums": [],
  "structs": [
    {
      "name": "SDL_StorageInterface",
      "fields": [
        {
          "name": "version",
          "type": "Uint32"
        },
        {
          "name": "close",
          "type": "bool (SDLCALL *close)(void *userdata)"
        },
        {
          "name": "ready",
          "type": "bool (SDLCALL *ready)(void *userdata)"
        },
        {
          "name": "enumerate",
          "type": "bool (SDLCALL *enumerate)(void *userdata, const char *path, SDL_EnumerateDirectoryCallback callback, void *callback_userdata)"
        },
        {
          "name": "info",
          "type": "bool (SDLCALL *info)(void *userdata, const char *path, SDL_PathInfo *info)"
        },
        {
          "name": "read_file",
          "type": "bool (SDLCALL *read_file)(void *userdata, const char *path, void *destination, Uint64 length)"
        },
        {
          "name": "write_file",
          "type": "bool (SDLCALL *write_file)(void *userdata, const char *path, const void *source, Uint64 length)"
        },
        {
          "name": "mkdir",
          "type": "bool (SDLCALL *mkdir)(void *userdata, const char *path)"
        },
        {
          "name": "remove",
          "type": "bool (SDLCALL *remove)(void *userdata, const char *path)"
        },
        {
          "name": "rename",
          "type": "bool (SDLCALL *rename)(void *userdata, const char *oldpath, const char *newpath)"
        },
        {
          "name": "copy",
          "type": "bool (SDLCALL *copy)(void *userdata, const char *oldpath, const char *newpath)"
        },
        {
          "name": "space_remaining",
          "type": "Uint64 (SDLCALL *space_remaining)(void *userdata)"
        }
      ]
    }
  ],
  "unions": [],
  "flags": [],
  "functions": [
    {
      "name": "SDL_OpenTitleStorage",
      "return_type": "SDL_Storage *",
      "parameters": [
        {
          "name": "override",
          "type": "const char *"
        },
        {
          "name": "props",
          "type": "SDL_PropertiesID"
        }
      ]
    },
    {
      "name": "SDL_OpenUserStorage",
      "return_type": "SDL_Storage *",
      "parameters": [
        {
          "name": "org",
          "type": "const char *"
        },
        {
          "name": "app",
          "type": "const char *"
        },
        {
          "name": "props",
          "type": "SDL_PropertiesID"
        }
      ]
    },
    {
      "name": "SDL_OpenFileStorage",
      "return_type": "SDL_Storage *",
      "parameters": [
        {
          "name": "path",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_OpenStorage",
      "return_type": "SDL_Storage *",
      "parameters": [
        {
          "name": "iface",
          "type": "const SDL_StorageInterface *"
        },
        {
          "name": "userdata",
          "type": "void *"
        }
      ]
    },
    {
      "name": "SDL_CloseStorage",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        }
      ]
    },
    {
      "name": "SDL_StorageReady",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        }
      ]
    },
    {
      "name": "SDL_GetStorageFileSize",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "path",
          "type": "const char *"
        },
        {
          "name": "length",
          "type": "Uint64 *"
        }
      ]
    },
    {
      "name": "SDL_ReadStorageFile",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "path",
          "type": "const char *"
        },
        {
          "name": "destination",
          "type": "void *"
        },
        {
          "name": "length",
          "type": "Uint64"
        }
      ]
    },
    {
      "name": "SDL_WriteStorageFile",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "path",
          "type": "const char *"
        },
        {
          "name": "source",
          "type": "const void *"
        },
        {
          "name": "length",
          "type": "Uint64"
        }
      ]
    },
    {
      "name": "SDL_CreateStorageDirectory",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "path",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_EnumerateStorageDirectory",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "path",
          "type": "const char *"
        },
        {
          "name": "callback",
          "type": "SDL_EnumerateDirectoryCallback"
        },
        {
          "name": "userdata",
          "type": "void *"
        }
      ]
    },
    {
      "name": "SDL_RemoveStoragePath",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "path",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_RenameStoragePath",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "oldpath",
          "type": "const char *"
        },
        {
          "name": "newpath",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_CopyStorageFile",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "oldpath",
          "type": "const char *"
        },
        {
          "name": "newpath",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_GetStoragePathInfo",
      "return_type": "bool",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "path",
          "type": "const char *"
        },
        {
          "name": "info",
          "type": "SDL_PathInfo *"
        }
      ]
    },
    {
      "name": "SDL_GetStorageSpaceRemaining",
      "return_type": "Uint64",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        }
      ]
    },
    {
      "name": "SDL_GlobStorageDirectory",
      "return_type": "char **",
      "parameters": [
        {
          "name": "storage",
          "type": "SDL_Storage *"
        },
        {
          "name": "path",
          "type": "const char *"
        },
        {
          "name": "pattern",
          "type": "const char *"
        },
        {
          "name": "flags",
          "type": "SDL_GlobFlags"
        },
        {
          "name": "count",
          "type": "int *"
        }
      ]
    }
  ]
}