description

# castFrom<S, T> static method

Queue<T> castFrom<S, T>(

1. Queue<S> source

)
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.

When a `T` value is stored into the adapted queue, the operation 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 instances of `S`, then the returned queue can be used as a `Queue<T>`.

Methods which accept `Object?` as argument, like contains and remove, will pass the argument directly to this queue's method without any checks.

## Implementation

    static Queue<T> castFrom<S, T>(Queue<S> source) => CastQueue<S, T>(source);