text: // Copyright (c) Microsoft Corporation. All rights reserved.
  // Licensed under the MIT license.
  
  #pragma once
  
  #include <algorithm>
  #include <string>
  #include <vector>
  
  namespace napa {
  namespace settings {
  
      /// <summary> Platform settings - setting that affect all zones. </summary>
      struct PlatformSettings {
  
          /// <summary> The logging provider. </summary>
          std::string loggingProvider = "console";
  
          /// <summary> The metric provider. </summary>
          std::string metricProvider;
      };
  
      /// <summary> Zone specific settings. </summary>
      struct ZoneSettings {
  
          /// <summary> The zone id. </summary>
          std::string id;
  
          /// <summary> The number of zone workers. </summary>
          uint32_t workers = 2;
  
          /// <summary> Isolate memory constraint - The maximum old space size in megabytes. </summary>
          uint32_t maxOldSpaceSize = 0u;
  
          /// <summary> Isolate memory constraint - The maximum semi space size in megabytes. </summary>
          uint32_t maxSemiSpaceSize = 0u;
  
          /// <summary> Isolate memory constraint - The maximum executable size in megabytes. </summary>
          uint32_t maxExecutableSize = 0u;
  
          /// <summary> The maximum size that the isolate stack is allowed to grow in bytes. </summary>
          uint32_t maxStackSize = 500 * 1024;
      };
  }
  }