Skip to content

Commit

Permalink
Deploying to gh-pages from @ f2228f9 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
kMutagene committed Jan 27, 2025
1 parent f42440e commit 794a051
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 69 deletions.
2 changes: 1 addition & 1 deletion index.json

Large diffs are not rendered by default.

34 changes: 17 additions & 17 deletions reference/dynamicobj-copyutils.html
Original file line number Diff line number Diff line change
Expand Up @@ -209,23 +209,23 @@ <h3>
function to deep copy a boxed object (if possible)
The following cases are handled (in this precedence):

- Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)

- ResizeArrays and Dictionaries containing any combination of basic F# types

- Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values

- array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.

- System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.

- DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.
if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.

Note on Classes that inherit from DynamicObj:

Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable.
The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.
- Basic F# types (`bool`, `byte`, `sbyte`, `int16`, `uint16`, `int`, `uint`, `int64`, `uint64`, `nativeint`, `unativeint`, `float`, `float32`, `char`, `string`, `unit`, `decimal`)
- `ResizeArrays` and `Dictionaries` containing any combination of basic F# types
- `Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
- `array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
- `System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
- `DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
Note on Classes that inherit from `DynamicObj`:
Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
and then passing them to the class constructor if needed.

Expand Down
68 changes: 34 additions & 34 deletions reference/dynamicobj-dynamicobj.html
Original file line number Diff line number Diff line change
Expand Up @@ -266,23 +266,23 @@ <h3>

The following cases are handled (in this precedence):

- Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)

- ResizeArrays and Dictionaries containing any combination of basic F# types

- Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values

- array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.

- System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.

- DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.
if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.

Note on Classes that inherit from DynamicObj:

Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable.
The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.
- Basic F# types (`bool`, `byte`, `sbyte`, `int16`, `uint16`, `int`, `uint`, `int64`, `uint64`, `nativeint`, `unativeint`, `float`, `float32`, `char`, `string`, `unit`, `decimal`)
- `ResizeArrays` and `Dictionaries` containing any combination of basic F# types
- `Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
- `array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
- `System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
- `DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
Note on Classes that inherit from `DynamicObj`:
Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
and then passing them to the class constructor if needed.

Expand Down Expand Up @@ -396,23 +396,23 @@ <h3>

The following cases are handled (in this precedence):

- Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)

- ResizeArrays and Dictionaries containing any combination of basic F# types

- Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values

- array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.

- System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.

- DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.
if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.

Note on Classes that inherit from DynamicObj:

Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable.
The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.
- Basic F# types (`bool`, `byte`, `sbyte`, `int16`, `uint16`, `int`, `uint`, `int64`, `uint64`, `nativeint`, `unativeint`, `float`, `float32`, `char`, `string`, `unit`, `decimal`)
- `ResizeArrays` and `Dictionaries` containing any combination of basic F# types
- `Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
- `array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
- `System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
- `DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
Note on Classes that inherit from `DynamicObj`:
Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
and then passing them to the class constructor if needed.

Expand Down
34 changes: 17 additions & 17 deletions reference/dynamicobj-dynobj.html
Original file line number Diff line number Diff line change
Expand Up @@ -1319,23 +1319,23 @@ <h3>

The following cases are handled (in this precedence):

- Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)

- ResizeArrays and Dictionaries containing any combination of basic F# types

- Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values

- array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.

- System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.

- DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively.
if a derived class has static properties (e.g. instance properties), these will be copied as dynamic properties on the new instance.

Note on Classes that inherit from DynamicObj:

Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement ICloneable.
The deep copied instances will be cast to DynamicObj with static/instance properties AND dynamic properties all set as dynamic properties.
- Basic F# types (`bool`, `byte`, `sbyte`, `int16`, `uint16`, `int`, `uint`, `int64`, `uint64`, `nativeint`, `unativeint`, `float`, `float32`, `char`, `string`, `unit`, `decimal`)
- `ResizeArrays` and `Dictionaries` containing any combination of basic F# types
- `Dictionaries` containing `DynamicObj` as keys or values in any combination with `DynamicObj` or basic F# types as keys or values
- `array<DynamicObj>`, `list<DynamicObj>`, `ResizeArray<DynamicObj>`: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.
- `System.ICloneable`: If the property implements `ICloneable`, the `Clone()` method is called on the property.
- `DynamicObj` (and derived classes): properties that are themselves `DynamicObj` instances are deep copied recursively.
if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.
Note on Classes that inherit from `DynamicObj`:
Classes that inherit from DynamicObj will match the `DynamicObj` typecheck if they do not implement `ICloneable`.
The deep copied instances will be cast to `DynamicObj` with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored.
It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties,
and then passing them to the class constructor if needed.

Expand Down

0 comments on commit 794a051

Please sign in to comment.