Skip to content

Commit ec7dbd0

Browse files
committed
sliceAt versions
1 parent 5b7b175 commit ec7dbd0

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

src/main/kotlin/kool/buffer params.kt

+57
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,68 @@ inline var Buffer.lim: Int
4040
limit(value)
4141
}
4242

43+
44+
// sliceAt
45+
4346
fun ByteBuffer.sliceAt(offset: Int, size: Int = lim - offset): ByteBuffer {
4447
val backupPos = pos
4548
pos = offset
4649
val res = slice()
4750
res.lim = size
4851
pos = backupPos
4952
return res
53+
}
54+
55+
fun ShortBuffer.sliceAt(offset: Int, size: Int = lim - offset): ShortBuffer {
56+
val backupPos = pos
57+
pos = offset
58+
val res = slice()
59+
res.lim = size
60+
pos = backupPos
61+
return res
62+
}
63+
64+
fun IntBuffer.sliceAt(offset: Int, size: Int = lim - offset): IntBuffer {
65+
val backupPos = pos
66+
pos = offset
67+
val res = slice()
68+
res.lim = size
69+
pos = backupPos
70+
return res
71+
}
72+
73+
fun LongBuffer.sliceAt(offset: Int, size: Int = lim - offset): LongBuffer {
74+
val backupPos = pos
75+
pos = offset
76+
val res = slice()
77+
res.lim = size
78+
pos = backupPos
79+
return res
80+
}
81+
82+
fun FloatBuffer.sliceAt(offset: Int, size: Int = lim - offset): FloatBuffer {
83+
val backupPos = pos
84+
pos = offset
85+
val res = slice()
86+
res.lim = size
87+
pos = backupPos
88+
return res
89+
}
90+
91+
fun DoubleBuffer.sliceAt(offset: Int, size: Int = lim - offset): DoubleBuffer {
92+
val backupPos = pos
93+
pos = offset
94+
val res = slice()
95+
res.lim = size
96+
pos = backupPos
97+
return res
98+
}
99+
100+
fun CharBuffer.sliceAt(offset: Int, size: Int = lim - offset): CharBuffer {
101+
val backupPos = pos
102+
pos = offset
103+
val res = slice()
104+
res.lim = size
105+
pos = backupPos
106+
return res
50107
}

0 commit comments

Comments
 (0)