<commit_before># Serializer

### Generic types

- int (32-bit signed integer, range: -2,147,483,648 through 2,147,483,647)
- uint (32-bit unsigned integer, range: 0 through 4,294,967,295)
- long (64-bit signed integer, range: -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807)
- short (16-bit signed integer, range: -32,768 through 32,767)
- float (32-bit single-precision floating-point integer, range: -3.4028235E+38 through -1.401298E-45 † for negative values and 1.401298E-45 through 3.4028235E+38 † for positive values)
- ulong (64-bit unsigned integer, range: 0 through 18,446,744,073,709,551,615 (1.8...E+19 †))
- ushort (16-bit unsigned integer, range: 0 through 65,535)
- string (range: 0 to approximately 2 billion Unicode characters)
- double (64-bit double-precision floating-point integer, range: -1.79769313486231570E+308 through -4.94065645841246544E-324 † for negative values and 4.94065645841246544E-324 through 1.79769313486231570E+308 † for positive values)

### Non-generic types

#### Type

A Type is a term to define the `Constructor` type. For example:

```
User user -> id: uint, name: string;
```

In the example above we have a constructor named `user`. I can say his type is `User`. A type cannot exist without a `Constructor`.

Characteristics

- A type can have many constructors<commit_msg>docs/Serializer.md: rename "I" to "We"<commit_after># Serializer

### Generic types

- int (32-bit signed integer, range: -2,147,483,648 through 2,147,483,647)
- uint (32-bit unsigned integer, range: 0 through 4,294,967,295)
- long (64-bit signed integer, range: -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807)
- short (16-bit signed integer, range: -32,768 through 32,767)
- float (32-bit single-precision floating-point integer, range: -3.4028235E+38 through -1.401298E-45 † for negative values and 1.401298E-45 through 3.4028235E+38 † for positive values)
- ulong (64-bit unsigned integer, range: 0 through 18,446,744,073,709,551,615 (1.8...E+19 †))
- ushort (16-bit unsigned integer, range: 0 through 65,535)
- string (range: 0 to approximately 2 billion Unicode characters)
- double (64-bit double-precision floating-point integer, range: -1.79769313486231570E+308 through -4.94065645841246544E-324 † for negative values and 4.94065645841246544E-324 through 1.79769313486231570E+308 † for positive values)

### Non-generic types

#### Type

A Type is a term to define the `Constructor` type. For example:

```
User user -> id: uint, name: string;
```

In the example above we have a constructor named `user`. We can say his type is `User`. A type cannot exist without a `Constructor`.

Characteristics

- A type can have many constructors
{'fraction_non_alphanumeric': 0.12313988095238096, 'fraction_numerical': 0.18601190476190477, 'mean_word_length': 4.709129511677283, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6299196', 'n_tokens_mistral': 1205, 'n_tokens_neox': 879, 'n_words': 319}