/* Copyright (c) 2013-2016 Jeffrey Pfau
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "vfs-py.h"

struct VFile* VFileFromPython(void* fileobj) {
	if (!fileobj) {
		return 0;
	}

	struct VFilePy* vfp = malloc(sizeof(struct VFilePy));
	if (!vfp) {
		return 0;
	}

	vfp->fileobj = fileobj;
	vfp->d.close = _vfpClose;
	vfp->d.seek = _vfpSeek;
	vfp->d.read = _vfpRead;
	vfp->d.readline = VFileReadline;
	vfp->d.write = _vfpWrite;
	vfp->d.map = _vfpMap;
	vfp->d.unmap = _vfpUnmap;
	vfp->d.truncate = _vfpTruncate;
	vfp->d.size = _vfpSize;
	vfp->d.sync = _vfpSync;

	return &vfp->d;
}