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";
 | |
|     }
 | |
| };
 | |
| }
 |