private void GenerateCode(SourceGeneratorContext context)
        {
            foreach (CodeGenerationConfigBuilder builder in _config.Builders)
            {
                if (builder.Input == null || builder.Output == null)
                {
                    _logger.LogError("Skipping generation", "Input or ouput object is not provided.", null);
                    continue;
                }

                foreach (INamedItem @object in _renderEngine.GetMatchedObjects(context, _visitor, builder))
                {
                    RenderResultModel renderResult = _renderEngine.RenderMatch(@object, builder);

                    if (renderResult != null)
                    {
                        _generationEngine.AddToCurrentGeneration(renderResult);
                    }
                    else
                    {
                        _logger.LogError("Skipping generation", "File failed to render.", null);
                        continue;
                    }
                }

                _generationEngine.PublishGeneration(context);
            }
        }