Пример #1
0
        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());
        }
Пример #2
0
 /// <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);
 }
Пример #3
0
 public override string GetTypeDefinition(BaseNode node, GetTypeDefinitionFunc defaultGetTypeDefinitionFunc, ResolveWrappedTypeFunc defaultResolveWrappedTypeFunc, ILogger logger)
 {
     return($"fb::WeakPtr<class {((ClassNode)((WeakPtrNode)node).InnerNode).Name}>");
 }