func()

in releases/go/mpl/AwsCryptographyMaterialProvidersOperations/AwsCryptographyMaterialProvidersOperations.go [1460:1595]


func (_static *CompanionStruct_Default___) CreateCryptographicMaterialsCache(config Config, input m_AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput) m_Wrappers.Result {
	var output m_Wrappers.Result = m_Wrappers.Result{}
	_ = output
	var _source0 m_AwsCryptographyMaterialProvidersTypes.CacheType = (input).Dtor_cache()
	_ = _source0
	{
		{
			if _source0.Is_Default() {
				var _0_c m_AwsCryptographyMaterialProvidersTypes.DefaultCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Default).Default
				_ = _0_c
				var _1_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache
				_ = _1_cache
				var _2_dt__update__tmp_h0 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = m_StormTracker.Companion_Default___.DefaultStorm()
				_ = _2_dt__update__tmp_h0
				var _3_dt__update_hentryCapacity_h0 int32 = (_0_c).Dtor_entryCapacity()
				_ = _3_dt__update_hentryCapacity_h0
				_1_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_(_3_dt__update_hentryCapacity_h0, (_2_dt__update__tmp_h0).Dtor_entryPruningTailSize(), (_2_dt__update__tmp_h0).Dtor_gracePeriod(), (_2_dt__update__tmp_h0).Dtor_graceInterval(), (_2_dt__update__tmp_h0).Dtor_fanOut(), (_2_dt__update__tmp_h0).Dtor_inFlightTTL(), (_2_dt__update__tmp_h0).Dtor_sleepMilli(), (_2_dt__update__tmp_h0).Dtor_timeUnits())
				var _4_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
				_ = _4_valueOrError0
				_4_valueOrError0 = m_StormTracker.Companion_Default___.CheckSettings(_1_cache)
				if (_4_valueOrError0).IsFailure() {
					output = (_4_valueOrError0).PropagateFailure()
					return output
				}
				var _5_cmc *m_StormTracker.StormTracker
				_ = _5_cmc
				var _nw0 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_()
				_ = _nw0
				_nw0.Ctor__(_1_cache)
				_5_cmc = _nw0
				var _6_synCmc *m_StormTrackingCMC.StormTrackingCMC
				_ = _6_synCmc
				var _nw1 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_5_cmc)
				_ = _nw1
				_6_synCmc = _nw1
				output = m_Wrappers.Companion_Result_.Create_Success_(_6_synCmc)
				return output
				goto Lmatch0
			}
		}
		{
			if _source0.Is_No() {
				var _7_cmc *m_LocalCMC.LocalCMC
				_ = _7_cmc
				var _nw2 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_()
				_ = _nw2
				_nw2.Ctor__(_dafny.Zero, _dafny.One)
				_7_cmc = _nw2
				output = m_Wrappers.Companion_Result_.Create_Success_(_7_cmc)
				return output
				goto Lmatch0
			}
		}
		{
			if _source0.Is_SingleThreaded() {
				var _8_c m_AwsCryptographyMaterialProvidersTypes.SingleThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_SingleThreaded).SingleThreaded
				_ = _8_c
				var _9_cmc *m_LocalCMC.LocalCMC
				_ = _9_cmc
				var _nw3 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_()
				_ = _nw3
				_nw3.Ctor__(_dafny.IntOfInt32((_8_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_8_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32)))
				_9_cmc = _nw3
				output = m_Wrappers.Companion_Result_.Create_Success_(_9_cmc)
				return output
				goto Lmatch0
			}
		}
		{
			if _source0.Is_MultiThreaded() {
				var _10_c m_AwsCryptographyMaterialProvidersTypes.MultiThreadedCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_MultiThreaded).MultiThreaded
				_ = _10_c
				var _11_cmc *m_LocalCMC.LocalCMC
				_ = _11_cmc
				var _nw4 *m_LocalCMC.LocalCMC = m_LocalCMC.New_LocalCMC_()
				_ = _nw4
				_nw4.Ctor__(_dafny.IntOfInt32((_10_c).Dtor_entryCapacity()), _dafny.IntOfInt32((Companion_Default___.OptionalCountingNumber((_10_c).Dtor_entryPruningTailSize())).UnwrapOr(int32(1)).(int32)))
				_11_cmc = _nw4
				var _12_synCmc *m_SynchronizedLocalCMC.SynchronizedLocalCMC
				_ = _12_synCmc
				var _nw5 *m_SynchronizedLocalCMC.SynchronizedLocalCMC = m_SynchronizedLocalCMC.New_SynchronizedLocalCMC_(_11_cmc)
				_ = _nw5
				_12_synCmc = _nw5
				output = m_Wrappers.Companion_Result_.Create_Success_(_12_synCmc)
				return output
				goto Lmatch0
			}
		}
		{
			if _source0.Is_StormTracking() {
				var _13_c m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_StormTracking).StormTracking
				_ = _13_c
				var _14_cache m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache
				_ = _14_cache
				var _15_dt__update__tmp_h1 m_AwsCryptographyMaterialProvidersTypes.StormTrackingCache = _13_c
				_ = _15_dt__update__tmp_h1
				var _16_dt__update_hentryPruningTailSize_h0 m_Wrappers.Option = Companion_Default___.OptionalCountingNumber((_13_c).Dtor_entryPruningTailSize())
				_ = _16_dt__update_hentryPruningTailSize_h0
				_14_cache = m_AwsCryptographyMaterialProvidersTypes.Companion_StormTrackingCache_.Create_StormTrackingCache_((_15_dt__update__tmp_h1).Dtor_entryCapacity(), _16_dt__update_hentryPruningTailSize_h0, (_15_dt__update__tmp_h1).Dtor_gracePeriod(), (_15_dt__update__tmp_h1).Dtor_graceInterval(), (_15_dt__update__tmp_h1).Dtor_fanOut(), (_15_dt__update__tmp_h1).Dtor_inFlightTTL(), (_15_dt__update__tmp_h1).Dtor_sleepMilli(), (_15_dt__update__tmp_h1).Dtor_timeUnits())
				var _17_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Outcome_.Default()
				_ = _17_valueOrError1
				_17_valueOrError1 = m_StormTracker.Companion_Default___.CheckSettings(_14_cache)
				if (_17_valueOrError1).IsFailure() {
					output = (_17_valueOrError1).PropagateFailure()
					return output
				}
				var _18_cmc *m_StormTracker.StormTracker
				_ = _18_cmc
				var _nw6 *m_StormTracker.StormTracker = m_StormTracker.New_StormTracker_()
				_ = _nw6
				_nw6.Ctor__(_14_cache)
				_18_cmc = _nw6
				var _19_synCmc *m_StormTrackingCMC.StormTrackingCMC
				_ = _19_synCmc
				var _nw7 *m_StormTrackingCMC.StormTrackingCMC = m_StormTrackingCMC.New_StormTrackingCMC_(_18_cmc)
				_ = _nw7
				_19_synCmc = _nw7
				output = m_Wrappers.Companion_Result_.Create_Success_(_19_synCmc)
				return output
				goto Lmatch0
			}
		}
		{
			var _20_c m_AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache = _source0.Get_().(m_AwsCryptographyMaterialProvidersTypes.CacheType_Shared).Shared
			_ = _20_c
			var _21_exception m_AwsCryptographyMaterialProvidersTypes.Error
			_ = _21_exception
			_21_exception = m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("CreateCryptographicMaterialsCache should never be called with Shared CacheType."))
			output = m_Wrappers.Companion_Result_.Create_Failure_(_21_exception)
			return output
		}
		goto Lmatch0
	}
Lmatch0:
	return output
}