qiniu_upload_manager/data_partition_provider/
fixed.rs1use super::{DataPartitionProvider, DataPartitionProviderFeedback, PartSize};
2use std::num::NonZeroU64;
3
4#[derive(Debug, Clone, Copy)]
6pub struct FixedDataPartitionProvider(NonZeroU64);
7
8impl Default for FixedDataPartitionProvider {
9 #[inline]
10 fn default() -> Self {
11 Self(PartSize::default().into())
12 }
13}
14
15impl FixedDataPartitionProvider {
16 #[inline]
20 pub fn new(part_size: u64) -> Option<Self> {
21 NonZeroU64::new(part_size).map(Self::new_with_non_zero_part_size)
22 }
23
24 #[inline]
28 pub const fn new_with_non_zero_part_size(part_size: NonZeroU64) -> Self {
29 Self(part_size)
30 }
31
32 #[inline]
34 pub const fn fixed_part_size(&self) -> NonZeroU64 {
35 self.0
36 }
37}
38
39impl DataPartitionProvider for FixedDataPartitionProvider {
40 #[inline]
41 fn part_size(&self) -> PartSize {
42 self.0.into()
43 }
44
45 #[inline]
46 fn feedback(&self, _feedback: DataPartitionProviderFeedback<'_>) {}
47}
48
49impl From<NonZeroU64> for FixedDataPartitionProvider {
50 #[inline]
51 fn from(part_size: NonZeroU64) -> Self {
52 Self(part_size)
53 }
54}