| File: System\Runtime\InteropServices\JavaScript\Marshaling\JSMarshalerArgument.Bool.cs | Web Access |
| Project: src\runtime\src\libraries\System.Runtime.InteropServices.JavaScript\src\System.Runtime.InteropServices.JavaScript.csproj (System.Runtime.InteropServices.JavaScript) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Runtime.CompilerServices; namespace System.Runtime.InteropServices.JavaScript { public partial struct JSMarshalerArgument { /// <summary> /// Implementation of the argument marshaling. /// It's used by JSImport code generator and should not be used by developers in source code. /// </summary> /// <param name="value">The value to be marshaled.</param> #if !DEBUG [MethodImpl(MethodImplOptions.AggressiveInlining)] #endif public void ToManaged(out bool value) { if (slot.Type == MarshalerType.None) { value = default; return; } value = slot.BooleanValue; } /// <summary> /// Implementation of the argument marshaling. /// It's used by JSImport code generator and should not be used by developers in source code. /// </summary> /// <param name="value">The value to be marshaled.</param> #if !DEBUG [MethodImpl(MethodImplOptions.AggressiveInlining)] #endif public void ToJS(bool value) { slot.Type = MarshalerType.Boolean; slot.BooleanValue = value; } /// <summary> /// Implementation of the argument marshaling. /// It's used by JSImport code generator and should not be used by developers in source code. /// </summary> /// <param name="value">The value to be marshaled.</param> #if !DEBUG [MethodImpl(MethodImplOptions.AggressiveInlining)] #endif public void ToManaged(out bool? value) { if (slot.Type == MarshalerType.None) { value = null; return; } value = slot.BooleanValue; } /// <summary> /// Implementation of the argument marshaling. /// It's used by JSImport code generator and should not be used by developers in source code. /// </summary> /// <param name="value">The value to be marshaled.</param> #if !DEBUG [MethodImpl(MethodImplOptions.AggressiveInlining)] #endif public void ToJS(bool? value) { if (value.HasValue) { slot.Type = MarshalerType.Boolean; slot.BooleanValue = value.Value; } else { slot.Type = MarshalerType.None; } } } }