pub struct HandshakeLine {
pub core_protocol: u32,
pub app_protocol: PluginProtocol,
pub network: String,
pub address: String,
pub proto_type: String,
pub cert_pem_base64: Option<String>,
}Expand description
Result of parsing the provider’s stdout handshake line.
Format: CORE_PROTOCOL|APP_PROTOCOL|NETWORK|ADDRESS|PROTO_TYPE|CERT.
Fields§
§core_protocol: u32§app_protocol: PluginProtocol§network: String§address: String§proto_type: String§cert_pem_base64: Option<String>Implementations§
Source§impl HandshakeLine
impl HandshakeLine
pub fn parse(line: &str) -> Result<Self, PluginError>
Sourcepub fn provider_cert_der(&self) -> Option<Result<Vec<u8>, PluginError>>
pub fn provider_cert_der(&self) -> Option<Result<Vec<u8>, PluginError>>
Decode the provider’s cert from base64. Returns None if the
provider didn’t include a cert (legacy protocol mode).
Real Terraform / OpenTofu providers emit base64-encoded DER
without padding in the handshake line; the standard base64
decoder requires = padding. We pad the input ourselves before
decoding so both padded + unpadded encodings work.
Trait Implementations§
Source§impl Clone for HandshakeLine
impl Clone for HandshakeLine
Source§fn clone(&self) -> HandshakeLine
fn clone(&self) -> HandshakeLine
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for HandshakeLine
impl RefUnwindSafe for HandshakeLine
impl Send for HandshakeLine
impl Sync for HandshakeLine
impl Unpin for HandshakeLine
impl UnsafeUnpin for HandshakeLine
impl UnwindSafe for HandshakeLine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request