use crate::clip::rectangle::Rectangle;
use crate::identity::Identity;
use crate::projection::resampler::none::None;
use crate::projection::resampler::resample::Connected as ConnectedResample;
use crate::projection::resampler::resample::Resample;
use crate::stream::Connected;
use crate::stream::Unconnected;
use super::Builder;
pub type NoPCNC<DRAIN> = Identity<Connected<DRAIN>>;
pub type NoPCNU = Identity<Unconnected>;
pub type PCNC<DRAIN, T> = Rectangle<Connected<DRAIN>, T>;
pub type PCNU<T> = Rectangle<Unconnected, T>;
pub type ResamplePCNC<DRAIN, PR, T> = Resample<PR, ConnectedResample<PCNC<DRAIN, T>, T>, T>;
pub type ResamplePCNU<PR, T> = Resample<PR, Unconnected, T>;
pub type ResampleNoPCNC<DRAIN, PR, T> = Resample<PR, ConnectedResample<NoPCNC<DRAIN>, T>, T>;
pub type ResampleNoPCNU<PR, T> = Resample<PR, Unconnected, T>;
pub type ResampleNonePCNC<DRAIN, PR, T> = None<PR, Connected<PCNC<DRAIN, T>>, T>;
pub type ResampleNonePCNU<PR, T> = None<PR, Unconnected, T>;
pub type ResampleNoneNoPCNC<DRAIN, PR, T> = None<PR, Connected<NoPCNC<DRAIN>>, T>;
pub type ResampleNoneNoPCNU<PR, T> = None<PR, Unconnected, T>;
pub type Default<CLIPC, CLIPU, DRAIN, PR, T> = Builder<
CLIPC,
CLIPU,
DRAIN,
NoPCNU,
PR,
ResampleNoneNoPCNC<DRAIN, PR, T>,
ResampleNoneNoPCNU<PR, T>,
T,
>;