Cephei.Objects
2.8.3
dotnet add package Cephei.Objects --version 2.8.3
NuGet\Install-Package Cephei.Objects -Version 2.8.3
<PackageReference Include="Cephei.Objects" Version="2.8.3" />
paket add Cephei.Objects --version 2.8.3
#r "nuget: Cephei.Objects, 2.8.3"
// Install Cephei.Objects as a Cake Addin #addin nuget:?package=Cephei.Objects&version=2.8.3 // Install Cephei.Objects as a Cake Tool #tool nuget:?package=Cephei.Objects&version=2.8.3
Cephei C# (.Net) Libraries Version 2, created and maintained by Irving Decarlo.
What is CS-Libraries2?
The original CS-Libraries project was initially created for my own personal use back in 2019. However, I was an inexperienced C# developer back then, so the original library fell short from my expectations.
Hence, in late 2020, I scrapped the original library and rewrote everything from scratch, thus dawning this current new version, the CS-Libraries2 project.
CS-Libraries2 is a collection of general-purpose high-level .Net libraries. All of the libraries in the project are written and compiled for .Net Standard 2.1.
Remarks
CS-Libraries2 was made for my own personal use and therefore will be modified according to my own needs.
It is worth noting that retroactive compatibility is not guaranteed - in fact, modifications made in any of the libraries may be incompatible with code created for former versions, whether fully or partially.
To better understand when a new version is compatible or not, refer to the following section: Versioning.
Versioning
Versioning in CS-Libraries2 emphasises more on how compatible the new version is compared to its predecessor rather than in the amount of changes made. A new version may contain multiple changes while being fully compatible, whereas others with a much lesser changelog may not be fully functional with code written for a previous version.
All libraries follow the standard 4-number version format (x.x.x.x).
In order to keep track of how compatible the new version is, the libraries under CS-Libraries2 are in accordance to the following rule:
Major Versions (X.x.x.x): Library Rewritten from Scratch
When a library is updated to a new Major version, it means that it was rewritten from scratch. Therefore, the new version is to be considered fully incompatible with any previous versions.
Minor Versions (x.X.x.x): Update with Partial Incompatibilities
When a library is updated to a new Minor version, it means that the update is expected to be partially incompatible with a previous version. Work may be required to adjust existing code to the new version.
Release Versions (x.x.X.x): Update with No Incompatibilities
When a library is updated to a new Release version, it means that the update is expected to be fully compatible with a previous version. No changes in already existing code will have to be made. Release versions often include new functionalities.
Build Versions (x.x.x.X): Patches and Bugfixes
When a library is updated to a new Build version, it means that patches and bugfixes were implemented which do not break compatibility with the previous version. It does not often include new functionalities.
How can I Contribute?
Even though I much appreciate the willingness to contribute to this repository, it was made for my personal use. Therefore, I need it to remain accessible to me at all times without modifications.
If there are changes that you'd like implemented or if you have found bugs, feel free to open a new issue in the repository and I will have a look at it.
You may also clone this repository to one of your own and make the modifications you'd like. If that's the case, please do modify the Project files of the library you'll modify and replace my name and Cephei with your own. I will not take responsibility for libraries based on my own that do not belong to this repository.
Thank you!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Cephei.Tools (>= 2.5.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Cephei.Objects:
Package | Downloads |
---|---|
Cephei.Commands
Library for commands. |
|
Cephei.Objects.Effects
Library for object effects (temporary objects). |
|
Cephei.Objects.Managed
Library for managed objects. |
|
Cephei.Objects.Stats
Library for stat objects. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.8.3 | 222 | 12/14/2024 |
v2.8.3, 24-08-14
+ Added IExecutableAsync and IExecutableAsync{T}.
v2.8.2, 24-04-22
+ Added ReadOnlyIdentifiable{T} and ReadOnlyIdentifiableAbstract{T}.
* PersistentAbstractObject{T}
*+ Now inherits from ReadOnlyIdentifiableAbstract{T}.
v2.8.1, 24-04-01
+ Added PersistentAbstractObject{T}, PersistentSimpleObject{T} and PersistentReadonlyObject{T}.
* PersistentObject
*+ Now inherits from PersistentReadonlyObject{T}.
v2.8, 24-03-27
* ITickable{T}
*- No longer inherits from ITickable.
v2.7.4, 23-11-26
+ Added IReadOnlyModifiable and IReadOnlyDeletable.
* IModifiable
*+ Inherits from IReadOnlyModifiable.
* IDeletable
*+ Inherits from IReadOnlyDeletable.
* All methods and classes that involved IModifiables or IDeletables that did not change their Modifiability or Deletability now reference their ReadOnly counterparts.
v2.7.3.1, 23-10-31
* HeartbeatObject
** Fixed a bug where the object could heartbeat more than once simultaneously.
v2.7.3, 23-10-11
+ Added IHeartbeatable, HeartbeatDelegate and HeartbeatObject.
v2.7.2, 23-05-11
* ObjectExtensions
*+ Added IEnumerable{IReadOnlyIdentifiable{T}}.IndexOf(T) and .Contains(T).
v2.7.1, 23-02-21
* ObjectExtensions
** All extension methods that don't set the IIdentifiable{T}'s value were changed to use IReadOnlyIdentifiable{T} instead.
v2.7, 23-02-18
* PersistentObject
** DeleteCheck renamed to BypassDeletable which will return true if the Deletable flag is to be ignored.
v2.6, 23-02-16
* ICloneable
** Renamed from ICopiable to ICloneable;
** Parameterless ICloneable now inherits from non-generic ICloneable;
*+ Added ICloneable variants with up to 3 parameters.
* ObjectExtensions
** Renamed ICloneable.CopyAll() to ICloneable.CloneAll();
*+ Added ICloneable.CopyAll variants with up to 3 parameters.
v2.5, 23-02-09
* Adapted to C# 8.0 nullability rules;
* Now has Cephei.Tools as dependency;
+ Added SystemNotModifiableException.
* ObjectExtensions
*- Removed all IDictionary.AddObject variants.
* PersistentObject
** No longer accepts the optional ID parameter for its constructor.
v2.4, 23-02-07
+ Added IReadOnlyPositionable{T}, IMovablePositionable{T} and IPositionable{T};
+ Added IReadOnlyIdentifiable{T}.
* IIdentifiable{T}
** Now inherits from IReadOnlyIdentifiable{T};
** IEquatable inheritance moved to IReadOnlyIdentifiable{T}.
v2.3, 23-02-04
+ Added the IDescribable and IExecutable interfaces;
* Framework changed to .Net Standard 2.1.
v2.2.2, 21-06-08
+ Added the ICopiable interface;
* ObjectExtensions
*+ Added IEnumerable{ICopiable}.CopyAll and IReadOnlyDictionary{IIdentifiable}.Contains.
v2.2.1, 21-06-05
* ObjectExtensions
*+ Added IDeletable.TryDelete.
v2.2, 21-05-22
* IIdentifiable
** No longer requires an IComparable implementation. All objects that implement IIdentifiable were updated accordingly.
v2.1.1, 21-05-15
* PersistentObject
** Equality checks between PersistentObjects and IIdentifiables are made by equating their IDs, no longer their HashCodes.
v2.1, 21-05-07
* PersistentObject
** No longer hardcoded to IIdentifiable<int>. Is now of generic type;
* ObjectExtensions
** IReadOnlyDictionary.GetObject no longer requires to have a value of type IIdentifiable.
v2.0.1, 21-05-05
* ObjectExtensions
*+ Added IsPendingUpdate, which returns true if there is one IUpdateable object with Updated=false in a collection.