[][src]Enum bp7::eid::EndpointID

pub enum EndpointID {
    Dtn(u8String),
    DtnNone(u8u8),
    Ipn(u8IpnAddress),
}

Examples

use bp7::eid::*;

let cbor_eid = [130, 1, 106, 110, 111, 100, 101, 49, 47, 116, 101, 115, 116];
let deserialized: EndpointID = serde_cbor::from_slice(&cbor_eid).unwrap();
assert_eq!(deserialized, EndpointID::Dtn(ENDPOINT_URI_SCHEME_DTN, "node1/test".to_string()))

Variants

Dtn(u8String)DtnNone(u8u8)Ipn(u8IpnAddress)

Methods

impl EndpointID[src]

pub fn new() -> EndpointID[src]

pub fn with_dtn(addr: String) -> EndpointID[src]

Examples

use bp7::eid::*;

assert_eq!(EndpointID::with_dtn("node1".to_string()),EndpointID::Dtn(ENDPOINT_URI_SCHEME_DTN,"node1".to_string()));

assert_eq!(EndpointID::with_dtn("node1/endpoint1".to_string()),EndpointID::Dtn(ENDPOINT_URI_SCHEME_DTN,"node1/endpoint1".to_string()));

pub fn with_dtn_none() -> EndpointID[src]

Examples

use bp7::eid::*;

assert_eq!(EndpointID::with_dtn_none(), EndpointID::DtnNone(ENDPOINT_URI_SCHEME_DTN,0));
let encoded_eid = serde_cbor::to_vec(&EndpointID::with_dtn_none()).expect("Error serializing packet as cbor.");
println!("{:02x?}", &encoded_eid);
assert_eq!(EndpointID::with_dtn_none(), serde_cbor::from_slice(&encoded_eid).expect("Decoding packet failed"));

pub fn with_ipn(addr: IpnAddress) -> EndpointID[src]

Examples

use bp7::eid::*;

assert_eq!(EndpointID::with_ipn( IpnAddress(23, 42) ), EndpointID::Ipn(ENDPOINT_URI_SCHEME_IPN, IpnAddress(23, 42)) );

let ipn_eid = EndpointID::with_ipn(IpnAddress(23, 42));
let encoded_eid = serde_cbor::to_vec(&ipn_eid).expect("Error serializing packet as cbor.");
println!("{:02x?}", &encoded_eid);
assert_eq!(ipn_eid, serde_cbor::from_slice(&encoded_eid).expect("Decoding packet failed"));

pub fn get_scheme(&self) -> String[src]

pub fn get_scheme_specific_part_dtn(&self) -> Option<String>[src]

pub fn to_string(&self) -> String[src]

impl EndpointID[src]

pub fn node_part(&self) -> Option<String>[src]

Examples

use bp7::eid::*;

let eid : EndpointID = "ipn://0.0".to_string().into();
assert_eq!(eid.node_part(),Some("0".to_string()));

let eid : EndpointID = "dtn://node1/incoming".to_string().into();
assert_eq!(eid.node_part(),Some("node1".to_string()));

let eid : EndpointID = "dtn://node1".to_string().into();
assert_eq!(eid.node_part(),Some("node1".to_string()));

pub fn is_node_id(&self) -> bool[src]

Examples

use bp7::eid::*;

let eid : EndpointID = "ipn://0.0".to_string().into();
assert_eq!(eid.is_node_id(), true);

let eid : EndpointID = "ipn://0.1".to_string().into();
assert_eq!(eid.is_node_id(), false);

let eid : EndpointID = "dtn://node1/incoming".to_string().into();
assert_eq!(eid.is_node_id(), false);

let eid : EndpointID = "dtn://node1".to_string().into();
assert_eq!(eid.is_node_id(), true);

pub fn validation_error(&self) -> Option<Bp7Error>[src]

Examples

use bp7::eid::*;

let eid = EndpointID::DtnNone(1, 0);
assert_eq!(eid.validation_error().is_none(), true); // should not fail

let eid = EndpointID::DtnNone(0, 0);
assert_eq!(eid.validation_error().is_some(), true); // should fail   
let eid = EndpointID::DtnNone(1, 1);
assert_eq!(eid.validation_error().is_some(), true); // should fail   

let eid = EndpointID::Ipn(2, IpnAddress(23, 42));
assert_eq!(eid.validation_error().is_none(), true); // should not fail
let eid = EndpointID::Ipn(1, IpnAddress(23, 42));
assert_eq!(eid.validation_error().is_some(), true); // should fail   
let eid = EndpointID::Ipn(2, IpnAddress(0, 0));
assert_eq!(eid.validation_error().is_some(), true); // should fail   

Trait Implementations

impl From<String> for EndpointID[src]

Load EndpointID from URL string. Support for IPN and dtn schemes.

Examples

use bp7::eid::*;

let eid = EndpointID::from("dtn://none".to_string());
assert_eq!(eid, EndpointID::DtnNone(ENDPOINT_URI_SCHEME_DTN, 0));

let eid = EndpointID::from("dtn:none".to_string());
assert_eq!(eid, EndpointID::DtnNone(ENDPOINT_URI_SCHEME_DTN, 0));

let eid = EndpointID::from("dtn://node1/endpoint1".to_string());
assert_eq!(eid, EndpointID::Dtn(ENDPOINT_URI_SCHEME_DTN, "node1/endpoint1".to_string()));

let eid = EndpointID::from("dtn:node1/endpoint1".to_string());
assert_eq!(eid, EndpointID::Dtn(ENDPOINT_URI_SCHEME_DTN, "node1/endpoint1".to_string()));
   

This should panic:

use bp7::eid::*;

let eid = EndpointID::from("node1".to_string());

impl<'_> From<&'_ str> for EndpointID[src]

impl PartialEq<EndpointID> for EndpointID[src]

impl Clone for EndpointID[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Default for EndpointID[src]

impl Eq for EndpointID[src]

impl Display for EndpointID[src]

impl Debug for EndpointID[src]

impl Hash for EndpointID[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Serialize for EndpointID[src]

impl<'de> Deserialize<'de> for EndpointID[src]

Auto Trait Implementations

impl Send for EndpointID

impl Sync for EndpointID

Blanket Implementations

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]