init
This commit is contained in:
197
src/dataunits.v
Normal file
197
src/dataunits.v
Normal file
@ -0,0 +1,197 @@
|
||||
// This is free and unencumbered software released into the public domain.
|
||||
|
||||
// Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
// distribute this software, either in source code form or as a compiled
|
||||
// binary, for any purpose, commercial or non-commercial, and by any
|
||||
// means.
|
||||
|
||||
// In jurisdictions that recognize copyright laws, the author or authors
|
||||
// of this software dedicate any and all copyright interest in the
|
||||
// software to the public domain. We make this dedication for the benefit
|
||||
// of the public at large and to the detriment of our heirs and
|
||||
// successors. We intend this dedication to be an overt act of
|
||||
// relinquishment in perpetuity of all present and future rights to this
|
||||
// software under copyright law.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
// OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
// For more information, please refer to <https://unlicense.org/>
|
||||
|
||||
module dataunits
|
||||
|
||||
pub type DataSize = f64
|
||||
|
||||
pub fn (d DataSize) bits() f64 {
|
||||
return f64(d)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) nibble() f64 {
|
||||
return f64(d / nibble)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) bytes() f64 {
|
||||
return f64(d / bytes)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) kb() f64 {
|
||||
return f64(d / kb)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) mb() f64 {
|
||||
return f64(d / mb)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) gb() f64 {
|
||||
return f64(d / gb)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) tb() f64 {
|
||||
return f64(d / tb)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) pb() f64 {
|
||||
return f64(d / pb)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) zb() f64 {
|
||||
return f64(d / zb)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) yb() f64 {
|
||||
return f64(d / yb)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) kib() f64 {
|
||||
return f64(d / kib)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) mib() f64 {
|
||||
return f64(d / mib)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) gib() f64 {
|
||||
return f64(d / gib)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) tib() f64 {
|
||||
return f64(d / tib)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) pib() f64 {
|
||||
return f64(d / pib)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) zib() f64 {
|
||||
return f64(d / zib)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) yib() f64 {
|
||||
return f64(d / yib)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) kbit() f64 {
|
||||
return f64(d / kbit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) mbit() f64 {
|
||||
return f64(d / mbit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) gbit() f64 {
|
||||
return f64(d / gbit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) tbit() f64 {
|
||||
return f64(d / tbit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) pbit() f64 {
|
||||
return f64(d / pbit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) zbit() f64 {
|
||||
return f64(d / zbit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) ybit() f64 {
|
||||
return f64(d / ybit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) kibit() f64 {
|
||||
return f64(d / kibit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) mibit() f64 {
|
||||
return f64(d / mibit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) gibit() f64 {
|
||||
return f64(d / gibit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) tibit() f64 {
|
||||
return f64(d / tibit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) pibit() f64 {
|
||||
return f64(d / pibit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) zibit() f64 {
|
||||
return f64(d / zibit)
|
||||
}
|
||||
|
||||
pub fn (d DataSize) yibit() f64 {
|
||||
return f64(d / yibit)
|
||||
}
|
||||
|
||||
pub const bit = DataSize(1)
|
||||
pub const nibble = bit * 4
|
||||
pub const bytes = bit * 8
|
||||
|
||||
pub const kb = bytes * 1000
|
||||
pub const mb = kb * 1000
|
||||
pub const gb = mb * 1000
|
||||
pub const tb = gb * 1000
|
||||
pub const pb = tb * 1000
|
||||
pub const zb = tb * 1000
|
||||
pub const yb = zb * 1000
|
||||
|
||||
pub const kib = bytes * 1024
|
||||
pub const mib = kib * 1024
|
||||
pub const gib = mib * 1024
|
||||
pub const tib = gib * 1024
|
||||
pub const pib = tib * 1024
|
||||
pub const zib = tib * 1024
|
||||
pub const yib = zib * 1024
|
||||
|
||||
pub const kbit = bit * 1000
|
||||
pub const mbit = kbit * 1000
|
||||
pub const gbit = mbit * 1000
|
||||
pub const tbit = gbit * 1000
|
||||
pub const pbit = tbit * 1000
|
||||
pub const zbit = pbit * 1000
|
||||
pub const ybit = zbit * 1000
|
||||
|
||||
pub const kibit = bit * 1024
|
||||
pub const mibit = kibit * 1024
|
||||
pub const gibit = mibit * 1024
|
||||
pub const tibit = gibit * 1024
|
||||
pub const pibit = tibit * 1024
|
||||
pub const zibit = tibit * 1024
|
||||
pub const yibit = zibit * 1024
|
||||
|
||||
// convert returns the value converted between the *from* and *to* units.
|
||||
// Example:
|
||||
// ```
|
||||
// assert dataunits.convert(500, dataunits.mbit, dataunits.kb) == 62500
|
||||
// ````
|
||||
pub fn convert(value f64, from DataSize, to DataSize) f64 {
|
||||
return f64(value * from / to)
|
||||
}
|
Reference in New Issue
Block a user