MCPcopy Create free account
hub / github.com/cncf/gitvote / try_from

Method try_from

src/github.rs:486–508  ·  view source on GitHub ↗
((event_name, event_body): (Option<&HeaderValue>, &[u8]))

Source from the content-addressed store, hash-verified

484 type Error = EventError;
485
486 fn try_from((event_name, event_body): (Option<&HeaderValue>, &[u8])) -> Result<Self, Self::Error> {
487 match event_name {
488 Some(event_name) => match event_name.as_bytes() {
489 b"issues" => {
490 let event: IssueEvent = serde_json::from_slice(event_body)
491 .map_err(|err| EventError::InvalidBody(err.to_string()))?;
492 Ok(Event::Issue(event))
493 }
494 b"issue_comment" => {
495 let event: IssueCommentEvent = serde_json::from_slice(event_body)
496 .map_err(|err| EventError::InvalidBody(err.to_string()))?;
497 Ok(Event::IssueComment(event))
498 }
499 b"pull_request" => {
500 let event: PullRequestEvent = serde_json::from_slice(event_body)
501 .map_err(|err| EventError::InvalidBody(err.to_string()))?;
502 Ok(Event::PullRequest(event))
503 }
504 _ => Err(EventError::UnsupportedEvent),
505 },
506 None => Err(EventError::MissingHeader),
507 }
508 }
509}
510
511/// Errors that may occur while creating a new event instance.

Callers

nothing calls this directly

Calls 2

IssueClass · 0.85
PullRequestClass · 0.85

Tested by

no test coverage detected