public override string GetTypeDefinition(BaseNode node, GetTypeDefinitionFunc defaultGetTypeDefinitionFunc, ResolveWrappedTypeFunc defaultResolveWrappedTypeFunc, ILogger logger) { switch (node) { case FDateTimeNode _: return("FDateTime"); case FGuidNode _: return("FGuid"); case FQWordNode _: return("FQWord"); case FStringNode _: return("FString"); case TArrayNode arrayNode: return($"TArray<{defaultResolveWrappedTypeFunc(arrayNode.InnerNode, true, logger)}>"); case TSharedPtrNode sharedPtrNode: return($"TSharedPtr<{defaultResolveWrappedTypeFunc(sharedPtrNode.InnerNode, true, logger)}>"); } throw new InvalidOperationException("Can not handle node: " + node.GetType()); }
/// <summary> /// Gets the type definition for the node. If the node is not a simple node <c>null</c> is returned. /// </summary> /// <param name="node">The node.</param> /// <param name="defaultGetTypeDefinitionFunc">The default implementation of <see cref="CppCodeGenerator.GetTypeDefinition"/>.</param> /// <param name="defaultResolveWrappedTypeFunc">The default implementation of <see cref="CppCodeGenerator.ResolveWrappedType"/>.</param> /// <param name="logger">The logger.</param> /// <returns>The type definition for the node or null if no simple type is available.</returns> public virtual string GetTypeDefinition(BaseNode node, GetTypeDefinitionFunc defaultGetTypeDefinitionFunc, ResolveWrappedTypeFunc defaultResolveWrappedTypeFunc, ILogger logger) { return(null); }
public override string GetTypeDefinition(BaseNode node, GetTypeDefinitionFunc defaultGetTypeDefinitionFunc, ResolveWrappedTypeFunc defaultResolveWrappedTypeFunc, ILogger logger) { return($"fb::WeakPtr<class {((ClassNode)((WeakPtrNode)node).InnerNode).Name}>"); }