mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-23 08:47:42 -05:00
53 lines
1,011 B
Go
53 lines
1,011 B
Go
|
/*
|
||
|
* XZ decompressor utility functions
|
||
|
*
|
||
|
* Author: Michael Cross <https://github.com/xi2>
|
||
|
*
|
||
|
* This file has been put into the public domain.
|
||
|
* You can do whatever you want with this file.
|
||
|
*/
|
||
|
|
||
|
package xz
|
||
|
|
||
|
func getLE32(buf []byte) uint32 {
|
||
|
return uint32(buf[0]) |
|
||
|
uint32(buf[1])<<8 |
|
||
|
uint32(buf[2])<<16 |
|
||
|
uint32(buf[3])<<24
|
||
|
}
|
||
|
|
||
|
func getBE32(buf []byte) uint32 {
|
||
|
return uint32(buf[0])<<24 |
|
||
|
uint32(buf[1])<<16 |
|
||
|
uint32(buf[2])<<8 |
|
||
|
uint32(buf[3])
|
||
|
}
|
||
|
|
||
|
func putLE32(val uint32, buf []byte) {
|
||
|
buf[0] = byte(val)
|
||
|
buf[1] = byte(val >> 8)
|
||
|
buf[2] = byte(val >> 16)
|
||
|
buf[3] = byte(val >> 24)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func putBE32(val uint32, buf []byte) {
|
||
|
buf[0] = byte(val >> 24)
|
||
|
buf[1] = byte(val >> 16)
|
||
|
buf[2] = byte(val >> 8)
|
||
|
buf[3] = byte(val)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func putLE64(val uint64, buf []byte) {
|
||
|
buf[0] = byte(val)
|
||
|
buf[1] = byte(val >> 8)
|
||
|
buf[2] = byte(val >> 16)
|
||
|
buf[3] = byte(val >> 24)
|
||
|
buf[4] = byte(val >> 32)
|
||
|
buf[5] = byte(val >> 40)
|
||
|
buf[6] = byte(val >> 48)
|
||
|
buf[7] = byte(val >> 56)
|
||
|
return
|
||
|
}
|