use super::StringLimits;
use crate::resource::ResourceLimit;
use crate::resource::ResourceQuantity;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct StringLimitsBuilder<R, Q = u64>
where
Q: ResourceQuantity,
{
limits: StringLimits<R, Q>,
}
impl<R, Q> Default for StringLimitsBuilder<R, Q>
where
Q: ResourceQuantity,
{
fn default() -> Self {
Self::new()
}
}
impl<R, Q> StringLimitsBuilder<R, Q>
where
Q: ResourceQuantity,
{
#[inline]
#[must_use]
pub const fn new() -> Self {
Self {
limits: StringLimits::new(),
}
}
#[inline]
#[must_use]
pub(crate) const fn from_limits(limits: StringLimits<R, Q>) -> Self {
Self { limits }
}
#[inline]
#[must_use]
pub fn utf8_bytes_limit(mut self, limit: ResourceLimit<R, Q>) -> Self {
self.limits.set_utf8_bytes_limit(limit);
self
}
#[inline]
#[must_use]
pub fn build(self) -> StringLimits<R, Q> {
self.limits
}
}