Class ResourceQuantity
port https://github.com/kubernetes/apimachinery/blob/master/pkg/api/resource/quantity.go to c#
Quantity is a fixed-point representation of a number.
It provides convenient marshaling/unmarshaling in JSON and YAML,
in addition to String() and Int64() accessors.
The serialization format is:
quantity ::= signedNumber suffix
(Note that suffix may be empty, from the "" case in decimalSI.)
digit ::= 0 | 1 | ... | 9
digits ::= digit | digitdigits
number ::= digits | digits.digits | digits. | .digits
sign ::= "+" | "-"
signedNumber ::= number | signnumber
suffix ::= binarySI | decimalExponent | decimalSI
binarySI ::= Ki | Mi | Gi | Ti | Pi | Ei
(International System of units; See: http:///physics.nist.gov/cuu/Units/binary.html)
decimalSI ::= m | "" | k | M | G | T | P | E
(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
decimalExponent ::= "e" signedNumber | "E" signedNumber
No matter which of the three exponent forms is used, no quantity may represent
a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal
places. Numbers larger or more precise will be capped or rounded up.
(E.g.: 0.1m will rounded up to 1m.)
This may be extended in the future if we require larger or smaller quantities.
When a Quantity is parsed from a string, it will remember the type of suffix
it had, and will use the same type again when it is serialized.
Before serializing, Quantity will be put in "canonical form".
This means that Exponent/suffix will be adjusted up or down (with a
corresponding increase or decrease in Mantissa) such that:
a. No precision is lost
b. No fractional digits will be emitted
c. The exponent (or suffix) is as large as possible.
The sign will be omitted unless the number is negative.
Examples:
1.5 will be serialized as "1500m"
1.5Gi will be serialized as "1536Mi"
NOTE: We reserve the right to amend this canonical format, perhaps to
allow 1.5 to be canonical.
TODO: Remove above disclaimer after all bikeshedding about format is over,
or after March 2015.
Note that the quantity will NEVER be internally represented by a
floating point number. That is the whole point of this exercise.
Non-canonical values will still parse as long as they are well formed,
but will be re-emitted in their canonical form. (So always use canonical
form, or don't diff.)
This format is intended to make it difficult to use these numbers without
writing some sort of special handling code in the hopes that that will
cause implementors to also use a fixed point implementation.
Inheritance
ResourceQuantity
Assembly: KubernetesClient.dll
Syntax
[JsonConverter(typeof(ResourceQuantityJsonConverter))]
public class ResourceQuantity
Constructors
View Source
Declaration
public ResourceQuantity(decimal n, int exp, ResourceQuantity.SuffixFormat format)
Parameters
View Source
ResourceQuantity(string)
Declaration
public ResourceQuantity(string v)
Parameters
| Type |
Name |
Description |
| string |
v |
|
Fields
View Source
MaxAllowed
Declaration
public static readonly decimal MaxAllowed
Field Value
Properties
View Source
Declaration
public ResourceQuantity.SuffixFormat Format { get; }
Property Value
Methods
View Source
CanonicalizeString()
Declaration
public string CanonicalizeString()
Returns
View Source
Declaration
public string CanonicalizeString(ResourceQuantity.SuffixFormat suffixFormat)
Parameters
Returns
View Source
Equals(object)
Declaration
public override bool Equals(object obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
Returns
Overrides
View Source
Equals(ResourceQuantity)
Declaration
public bool Equals(ResourceQuantity other)
Parameters
Returns
View Source
GetHashCode()
Declaration
public override int GetHashCode()
Returns
Overrides
View Source
ToBigInteger()
Declaration
public BigInteger ToBigInteger()
Returns
View Source
ToDecimal()
Declaration
public decimal ToDecimal()
Returns
View Source
ToDouble()
Declaration
Returns
View Source
ToInt32()
Declaration
Returns
View Source
ToInt64()
Declaration
Returns
View Source
ToString()
Declaration
public override string ToString()
Returns
Overrides
View Source
ToUInt32()
Declaration
Returns
View Source
ToUInt64()
Declaration
Returns
Operators
View Source
operator ==(ResourceQuantity, ResourceQuantity)
Declaration
public static bool operator ==(ResourceQuantity left, ResourceQuantity right)
Parameters
Returns
View Source
implicit operator ResourceQuantity(decimal)
Declaration
public static implicit operator ResourceQuantity(decimal v)
Parameters
Returns
View Source
implicit operator ResourceQuantity(string)
Declaration
public static implicit operator ResourceQuantity(string v)
Parameters
| Type |
Name |
Description |
| string |
v |
|
Returns
View Source
implicit operator decimal(ResourceQuantity)
Declaration
public static implicit operator decimal(ResourceQuantity v)
Parameters
Returns
View Source
operator !=(ResourceQuantity, ResourceQuantity)
Declaration
public static bool operator !=(ResourceQuantity left, ResourceQuantity right)
Parameters
Returns