This is not a very elegant approach but it does the job in your example and might get you started.
I am using
$Version
"12.0.0 for Linux x86 (64-bit) (April 7, 2019)"
Let's begin by getting the list you described using the ArrayPad
Let's create your list
list = Range@10;
and a pad
pad = {{1, 2}};
and the we do
exp1 = ArrayPad[list, pad, "Periodic"]
which yields
{10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2}
In order to achieve the same thing using PaddingLayer
the only way I could come up with is the following:
For a new pad given by
pad = {{1, 1}};
we run
exp2 = Fold[SubsetMap[Reverse, #1, #2] &,
PaddingLayer[pad, Padding -> "Fixed"]@list, {{1, 12}}] //
Append[#, 2] &
which gives
{10., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 1., 2}
Final comment: It is interesting to compare the time needed in each case.
exp1 = ArrayPad[list, pad, "Periodic"] // RepeatedTiming
{2.*10^-6, {10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2}}
while on the other hand
exp2 = Fold[SubsetMap[Reverse, #1, #2] &,
PaddingLayer[pad, Padding -> "Fixed"]@list, {{1, 12}}] //
Append[#, 2] & // RepeatedTiming
{0.0060, {10., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 1., 2}}