@@ -216,9 +216,9 @@ pub enum PrimitiveValue {
216
216
/// DICOM primitive value with a single element.
217
217
macro_rules! impl_from_for_primitive {
218
218
( $typ: ty, $variant: ident) => {
219
- impl From < $typ > for PrimitiveValue {
219
+ impl From <$typ> for PrimitiveValue {
220
220
fn from( value: $typ) -> Self {
221
- PrimitiveValue :: $variant ( C :: from_elem( value, 1 ) )
221
+ PrimitiveValue :: $variant( C :: from_elem( value, 1 ) )
222
222
}
223
223
}
224
224
} ;
@@ -239,20 +239,33 @@ impl_from_for_primitive!(NaiveDate, Date);
239
239
impl_from_for_primitive ! ( NaiveTime , Time ) ;
240
240
impl_from_for_primitive ! ( DateTime <FixedOffset >, DateTime ) ;
241
241
242
+ /// Construct a DICOM value.
243
+ #[ macro_export]
244
+ macro_rules! dicom_value {
245
+ ( $typ: ident, [ $( $elem: expr) ,* ] ) => {
246
+ {
247
+ use smallvec:: smallvec; // import smallvec macro
248
+ dicom_core:: value:: PrimitiveValue :: $typ ( smallvec![ $( $elem, ) * ] )
249
+ }
250
+ } ;
251
+ ( $typ: ident, $elem: expr) => {
252
+ dicom_core:: value:: PrimitiveValue :: $typ ( dicom_core:: value:: C :: from_elem( $elem, 1 ) )
253
+ } ;
254
+ }
255
+
242
256
impl From < String > for PrimitiveValue {
243
257
fn from ( value : String ) -> Self {
244
258
PrimitiveValue :: Str ( value)
245
259
}
246
- }
260
+ }
247
261
248
262
impl From < & str > for PrimitiveValue {
249
263
fn from ( value : & str ) -> Self {
250
264
PrimitiveValue :: Str ( value. to_owned ( ) )
251
265
}
252
- }
266
+ }
253
267
254
268
impl PrimitiveValue {
255
-
256
269
/// Create a single unsigned 16-bit value.
257
270
pub fn new_u16 ( value : u16 ) -> Self {
258
271
PrimitiveValue :: U16 ( C :: from_elem ( value, 1 ) )
0 commit comments