29 lines
		
	
	
		
			968 B
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			968 B
		
	
	
	
		
			C++
		
	
	
#pragma once
 | 
						|
 | 
						|
#include "Qualified.h"
 | 
						|
 | 
						|
namespace wrap {
 | 
						|
struct TypedefPair {
 | 
						|
    Qualified oldType, newType;
 | 
						|
    std::string includeFile;
 | 
						|
 | 
						|
    TypedefPair() {}
 | 
						|
    TypedefPair(const Qualified& _oldType, const Qualified& _newType,
 | 
						|
                const std::string& includeFile)
 | 
						|
        : oldType(_oldType), newType(_newType), includeFile(includeFile) {
 | 
						|
          if (!oldType.isNonBasicType() &&
 | 
						|
              std::find(Qualified::BasicTypedefs.begin(),
 | 
						|
                        Qualified::BasicTypedefs.end(),
 | 
						|
                        newType) == Qualified::BasicTypedefs.end())
 | 
						|
            Qualified::BasicTypedefs.push_back(newType);
 | 
						|
    }
 | 
						|
 | 
						|
    void emit_cython_pxd(FileWriter& file) const {
 | 
						|
        file.oss << "cdef extern from \"" << includeFile << "\" namespace \""
 | 
						|
                 << oldType.qualifiedNamespaces("::") << "\":\n";
 | 
						|
        file.oss << "    ctypedef " << oldType.pxdClassName() << " "
 | 
						|
                 << newType.pxdClassName() << "\n";
 | 
						|
    }
 | 
						|
};
 | 
						|
}
 |