castFrom<S, T> method
override
Adapts source
to be a Queue<T>
.
Any time the queue would produce an element that is not a T
,
the element access will throw.
Any time a T
value is attempted stored into the adapted queue,
the store will throw unless the value is also an instance of S
.
If all accessed elements of source
are actually instances of T
,
and if all elements stored into the returned queue are actually instance
of S
,
then the returned queue can be used as a Queue<T>
.
Implementation
static Queue<T> castFrom<S, T>(Queue<S> source) =>
new CastQueue<S, T>(source);