Packages
mist
0.14.3
6.0.3
6.0.2
6.0.1
6.0.0
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
5.0.0-rc1
4.0.7
4.0.6
4.0.5
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
3.0.0
2.0.0
1.2.0
1.1.0
1.0.0
1.0.0-rc3
1.0.0-rc2
1.0.0-rc1
0.17.0
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.3
a misty Gleam web server
Current section
Files
Jump to
Current section
Files
src/mist/internal/buffer.gleam
pub type Buffer {
Buffer(remaining: Int, data: BitArray)
}
pub fn empty() -> Buffer {
Buffer(remaining: 0, data: <<>>)
}
pub fn new(data: BitArray) -> Buffer {
Buffer(remaining: 0, data: data)
}
pub fn append(buffer: Buffer, data: BitArray) -> Buffer {
Buffer(..buffer, data: <<buffer.data:bits, data:bits>>)
}
pub fn slice(buffer: Buffer, bits: Int) -> #(BitArray, BitArray) {
let bytes = bits * 8
case buffer.data {
<<value:bits-size(bytes), rest:bits>> -> #(value, rest)
_ -> #(buffer.data, <<>>)
}
}
pub fn with_capacity(buffer: Buffer, size: Int) -> Buffer {
Buffer(..buffer, remaining: size)
}
pub fn size(remaining: Int) -> Buffer {
Buffer(data: <<>>, remaining: remaining)
}