identity_iota_core/state_metadata/
encoding.rs

1// Copyright 2020-2022 IOTA Stiftung
2// SPDX-License-Identifier: Apache-2.0
3
4use num_traits::FromPrimitive;
5
6use crate::Error;
7
8/// Indicates the encoding of a DID document in state metadata.
9#[derive(Copy, Clone, Debug, Default, Ord, PartialOrd, Eq, PartialEq, num_derive::FromPrimitive)]
10#[non_exhaustive]
11pub enum StateMetadataEncoding {
12  /// State Metadata encoded as JSON.
13  #[default]
14  Json = 0,
15}
16
17impl TryFrom<u8> for StateMetadataEncoding {
18  type Error = Error;
19
20  fn try_from(value: u8) -> Result<Self, Self::Error> {
21    FromPrimitive::from_u8(value).ok_or(Error::InvalidStateMetadata("unsupported encoding"))
22  }
23}