rust/ccommon-array/src/lib.rs (24 lines of code) (raw):
// Copyright 2020 Twitter, Inc.
// Licensed under the Apache License, Version 2.0
// http://www.apache.org/licenses/LICENSE-2.0
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
// constants to define default values
const NELEM_DELTA: usize = 16;
// helper functions
fn nelem_delta() -> usize {
NELEM_DELTA
}
// definitions
#[derive(Debug)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct ArrayConfig {
#[cfg_attr(feature = "serde", serde(default = "nelem_delta"))]
nelem_delta: usize,
}
// implementation
impl ArrayConfig {
pub fn nelem_delta(&self) -> usize {
self.nelem_delta
}
}
// trait implementations
impl Default for ArrayConfig {
fn default() -> Self {
Self {
nelem_delta: nelem_delta(),
}
}
}