// Copyright 2017 rust-ipfs-api Developers // // Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be // copied, modified, or distributed except according to those terms. // use request::ApiRequest; use serde::ser::{Serialize, Serializer}; #[derive(Copy, Clone)] pub enum KeyType { Rsa, Ed25519, } impl Serialize for KeyType { fn serialize(&self, serializer: S) -> Result where S: Serializer, { let s = match self { &KeyType::Rsa => "rsa", &KeyType::Ed25519 => "ed25519", }; serializer.serialize_str(s) } } #[derive(Serialize)] pub struct KeyGen<'a, 'b> { #[serde(rename = "arg")] pub name: &'a str, #[serde(rename = "type")] pub kind: KeyType, pub size: &'b Option, } impl<'a, 'b> ApiRequest for KeyGen<'a, 'b> { #[inline] fn path() -> &'static str { "/key/gen" } } pub struct KeyList; impl_skip_serialize!(KeyList); impl ApiRequest for KeyList { #[inline] fn path() -> &'static str { "/key/list" } }