forked from msgpack/msgpack-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPacker.Nullable.tt
More file actions
107 lines (103 loc) · 2.86 KB
/
Packer.Nullable.tt
File metadata and controls
107 lines (103 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<#
//
// MessagePack for CLI
//
// Copyright (C) 2010-2012 FUJIWARA, Yusuke
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#>
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#@ assembly Name="System.Core" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Collections.Generic" #>
<#
string __typeName = "Packer";
Func<Type, bool> __IsNotCLSCompliant =
type =>
{
return
type == typeof( sbyte )
|| type == typeof( ushort )
|| type == typeof( uint )
|| type == typeof( ulong );
};
#>
#region -- License Terms --
//
// MessagePack for CLI
//
// Copyright (C) 2010-2014 FUJIWARA, Yusuke
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#endregion -- License Terms --
#if UNITY_STANDALONE || UNITY_WEBPLAYER || UNITY_WII || UNITY_IPHONE || UNITY_ANDROID || UNITY_PS3 || UNITY_XBOX360 || UNITY_FLASH || UNITY_BKACKBERRY || UNITY_WINRT
#define UNITY
#endif
using System;
namespace MsgPack
{
// This file generated from <#= __typeName #>.Nullable.tt T4Template.
// Do not modify this file. Edit <#= __typeName #>.Nullable.tt instead.
partial class <#= __typeName #>
{
<#
foreach( var __type in
new []
{
typeof( sbyte ), typeof( byte ),
typeof( short ), typeof( ushort ),
typeof( int ), typeof( uint ),
typeof( long ), typeof( ulong ),
typeof( float ), typeof( double ),
typeof( bool )
}
)
{
#>
/// <summary>
/// Pack nullable <see cref="<#= __type.Name #>"/> value.
/// </summary>
/// <param name="value">Value to serialize.</param>
/// <returns>This packer instance.</returns>
<#
if( __IsNotCLSCompliant( __type ) )
{
#>
#if !UNITY
[CLSCompliant( false )]
#endif // !UNITY
<#
}
#>
public <#= __typeName #> Pack( <#= __type.Name #>? value )
{
return value.HasValue ? this.Pack( value.Value ) : this.PackNull();
}
<#
}
#>
}
}