use pingora_error::ErrorType;
pub const ERR_RESPONSE_TOO_LARGE: ErrorType = ErrorType::Custom("response too large");
#[derive(Debug)]
pub(crate) struct MaxFileSizeTracker {
body_bytes: usize,
max_size: usize,
}
impl MaxFileSizeTracker {
pub fn new(max_size: usize) -> MaxFileSizeTracker {
MaxFileSizeTracker {
body_bytes: 0,
max_size,
}
}
pub fn add_body_bytes(&mut self, bytes: usize) -> bool {
self.body_bytes += bytes;
self.allow_caching()
}
pub fn max_file_size_bytes(&self) -> usize {
self.max_size
}
pub fn allow_caching(&self) -> bool {
self.body_bytes <= self.max_size
}
}